:root {
  --vve-forest: #123c32;
  --vve-forest-dark: #0b2c24;
  --vve-leaf: #2f7d4c;
  --vve-gold: #d59a2b;
  --vve-sand: #f4efe6;
  --vve-cream: #fbfaf7;
  --vve-ink: #17201d;
  --vve-muted: #68736f;
  --vve-line: #dfe5e2;
  --vve-white: #fff;
  --vve-shadow: 0 18px 50px rgba(16, 45, 37, .12);
  --vve-radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--vve-white); color: var(--vve-ink); font-family: Inter, Arial, sans-serif; line-height: 1.6; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.vve-container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.vve-kicker { margin: 0 0 10px; color: var(--vve-gold); font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.vve-home-page { width: 100%; overflow: hidden; }
.vve-home-page > .elementor { width: 100%; }
.vve-elementor-home-block { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; gap: 0 !important; }
.vve-elementor-home-block > .e-con-inner { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; gap: 0 !important; }
.vve-elementor-home-block .elementor-widget-shortcode,
.vve-elementor-home-block .elementor-widget-shortcode > .elementor-widget-container { width: 100%; margin: 0; padding: 0; }

.vve-site-header { position: relative; z-index: 20; height: 86px; background: rgba(255,255,255,.98); border-bottom: 1px solid rgba(18,60,50,.08); }
.vve-header-inner { height: 100%; display: flex; align-items: center; gap: 32px; }
.vve-brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.vve-brand img, .vve-brand .custom-logo { width: 58px; height: 58px; object-fit: contain; border-radius: 10px; }
.vve-brand .custom-logo-link { line-height: 0; }
.vve-brand span { display: grid; line-height: 1.05; }
.vve-brand strong { color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: 22px; }
.vve-brand small { margin-top: 5px; color: var(--vve-muted); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.vve-navigation { margin-left: auto; }
.vve-menu { display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; list-style: none; }
.vve-menu a { color: #33413d; font-size: 14px; font-weight: 700; }
.vve-menu a:hover, .vve-menu a:focus { color: var(--vve-leaf); }
.vve-header-cta, .vve-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--vve-forest); color: var(--vve-white); font-weight: 800; transition: transform .2s ease, background .2s ease; }
.vve-header-cta:hover, .vve-button:hover { background: var(--vve-leaf); transform: translateY(-1px); }
.vve-menu-toggle { display: none; width: 44px; height: 44px; margin-left: auto; padding: 10px; border: 1px solid var(--vve-line); border-radius: 10px; background: var(--vve-white); }
.vve-menu-toggle span { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--vve-forest); }

.vve-hero { min-height: 650px; display: flex; align-items: center; background-image: linear-gradient(90deg, rgba(7,33,27,.88) 0%, rgba(7,33,27,.70) 45%, rgba(7,33,27,.20) 100%), url('../images/hero-home.webp'); background-size: cover; background-position: center; }
.vve-hero-content { padding-block: 92px; }
.vve-hero h1 { max-width: 780px; margin: 0; color: var(--vve-white); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(42px, 6vw, 68px); font-weight: 500; line-height: 1.08; letter-spacing: -.03em; }
.vve-hero-lead { max-width: 650px; margin: 22px 0 34px; color: rgba(255,255,255,.88); font-size: 18px; }
.vve-search { display: grid; grid-template-columns: repeat(3, 1fr) auto; align-items: end; gap: 10px; max-width: 1040px; padding: 14px; border-radius: 16px; background: var(--vve-white); box-shadow: var(--vve-shadow); }
.vve-search label { display: grid; gap: 4px; padding: 2px 12px; border-right: 1px solid var(--vve-line); }
.vve-search label span { color: var(--vve-muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vve-search select { min-width: 0; height: 42px; padding: 0 28px 0 0; border: 0; outline: 0; background: var(--vve-white); color: var(--vve-ink); font-weight: 700; }
.vve-search button { height: 50px; padding: 0 22px; border: 0; border-radius: 11px; background: var(--vve-gold); color: #261b07; font-weight: 900; cursor: pointer; }
.vve-search button:hover { background: #e5ad3c; }

.vve-confidence { border-bottom: 1px solid var(--vve-line); background: var(--vve-white); }
.vve-confidence .vve-container { min-height: 74px; display: flex; align-items: center; justify-content: center; gap: 70px; }
.vve-confidence span { color: #45524e; font-size: 14px; font-weight: 700; }
.vve-confidence b { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: 8px; border-radius: 50%; background: #e8f3ec; color: var(--vve-leaf); }

.vve-local-intro { padding: 54px 0 18px; background: var(--vve-white); }
.vve-local-intro .vve-container { max-width: 1050px; margin-inline: auto; }
.vve-local-intro h2 { max-width: 980px; margin: 0; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 3.5vw, 42px); font-weight: 500; line-height: 1.18; }
.vve-local-intro p { max-width: 950px; margin: 18px 0 0; color: var(--vve-muted); font-size: 16px; line-height: 1.75; }

.vve-section { padding: 92px 0; }
#propiedades.vve-section { padding-top: 46px; }
.vve-section-soft { background: var(--vve-cream); }
.vve-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.vve-section-heading h2, .vve-service-copy h2, .vve-contact-strip h2, .vve-property-content h2, .vve-contact-card h2, .vve-seo-copy h2 { margin: 0; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(32px, 4vw, 46px); font-weight: 500; line-height: 1.15; }
.vve-section-heading > a { color: var(--vve-leaf); font-size: 14px; font-weight: 800; }
.vve-section-heading > a span { margin-left: 6px; }
.vve-centered { justify-content: center; text-align: center; }

.vve-property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vve-property-card { overflow: hidden; border: 1px solid var(--vve-line); border-radius: var(--vve-radius); background: var(--vve-white); box-shadow: 0 8px 28px rgba(18,60,50,.06); transition: transform .22s ease, box-shadow .22s ease; }
.vve-property-card:hover { transform: translateY(-4px); box-shadow: var(--vve-shadow); }
.vve-card-image { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #d8ddd9; }
.vve-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.vve-property-card:hover .vve-card-image img { transform: scale(1.025); }
.vve-card-image > span { position: absolute; left: 14px; top: 14px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--vve-forest); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.vve-card-body { padding: 20px; }
.vve-card-location { margin: 0 0 7px; color: var(--vve-muted); font-size: 13px; }
.vve-card-body h3 { min-height: 52px; margin: 0; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: 21px; line-height: 1.25; }
.vve-card-body h3 a:hover { color: var(--vve-leaf); }
.vve-card-facts { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 18px 0; padding: 14px 0; border-top: 1px solid var(--vve-line); border-bottom: 1px solid var(--vve-line); color: #56615d; font-size: 12px; }
.vve-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.vve-card-footer strong { color: var(--vve-forest); font-size: 19px; }
.vve-card-footer a { color: var(--vve-leaf); font-size: 12px; font-weight: 900; }
.vve-no-results { grid-column: 1 / -1; padding: 50px; border: 1px dashed #b7c4be; border-radius: var(--vve-radius); text-align: center; }
.vve-no-results h2 { margin: 0 0 8px; color: var(--vve-forest); font-family: Georgia, serif; }

.vve-city-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.vve-city-grid a { min-height: 150px; display: flex; flex-direction: column; justify-content: center; padding: 26px; border: 1px solid #e5dfd5; border-radius: 14px; background: var(--vve-white); }
.vve-city-grid a:hover { border-color: #a8c4b2; box-shadow: 0 12px 32px rgba(18,60,50,.08); }
.vve-city-grid span { color: var(--vve-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.vve-city-grid strong { margin: 4px 0 16px; color: var(--vve-forest); font-family: Georgia, serif; font-size: 28px; }
.vve-city-grid b { color: var(--vve-leaf); font-size: 12px; }

.vve-service-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 90px; }
.vve-service-copy > p:not(.vve-kicker) { max-width: 520px; margin: 20px 0 28px; color: var(--vve-muted); }
.vve-steps { display: grid; gap: 14px; }
.vve-steps article { display: flex; align-items: flex-start; gap: 20px; padding: 22px; border: 1px solid var(--vve-line); border-radius: 14px; }
.vve-steps article > span { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border-radius: 50%; background: var(--vve-sand); color: var(--vve-forest); font-weight: 900; }
.vve-steps h3 { margin: 0 0 5px; color: var(--vve-forest); font-size: 17px; }
.vve-steps p { margin: 0; color: var(--vve-muted); font-size: 14px; }

.vve-contact-strip { padding: 58px 0; background: var(--vve-forest); color: var(--vve-white); }
.vve-contact-strip .vve-container { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.vve-contact-strip h2 { color: var(--vve-white); }
.vve-button-light { background: var(--vve-white); color: var(--vve-forest); }
.vve-button-light:hover { background: var(--vve-sand); color: var(--vve-forest); }

.vve-blog-section { background: #f7f3eb; }
.vve-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vve-blog-card { overflow: hidden; border: 1px solid #e3ded4; border-radius: var(--vve-radius); background: var(--vve-white); box-shadow: 0 8px 28px rgba(18,60,50,.06); transition: transform .22s ease, box-shadow .22s ease; }
.vve-blog-card:hover { transform: translateY(-4px); box-shadow: var(--vve-shadow); }
.vve-blog-card-image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #d8ddd9; }
.vve-blog-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.vve-blog-card:hover .vve-blog-card-image img { transform: scale(1.025); }
.vve-blog-card-body { padding: 24px; }
.vve-blog-meta, .vve-article-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 12px; color: var(--vve-muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.vve-blog-meta span, .vve-article-meta span { position: relative; }
.vve-blog-meta span::before, .vve-article-meta span::before { content: ''; position: absolute; left: -10px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: var(--vve-gold); }
.vve-blog-card h2, .vve-blog-card h3 { min-height: 78px; margin: 0; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 500; line-height: 1.25; }
.vve-blog-card h2 a:hover, .vve-blog-card h3 a:hover { color: var(--vve-leaf); }
.vve-blog-card-body > p:not(.vve-blog-meta) { margin: 15px 0 20px; color: var(--vve-muted); font-size: 14px; }
.vve-blog-read { color: var(--vve-leaf); font-size: 13px; font-weight: 900; }
.vve-blog-read span { margin-left: 5px; }
.vve-blog-hero { padding: 92px 0; background: linear-gradient(120deg, #102f28, #1c5845); color: var(--vve-white); }
.vve-blog-hero h1 { max-width: 850px; margin: 0; color: var(--vve-white); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(42px, 6vw, 66px); font-weight: 500; line-height: 1.08; }
.vve-blog-hero p:last-child { max-width: 680px; margin: 20px 0 0; color: rgba(255,255,255,.78); font-size: 18px; }
.vve-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 42px; }
.vve-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 42px; min-height: 42px; padding: 0 12px; border: 1px solid var(--vve-line); border-radius: 999px; color: var(--vve-forest); font-size: 13px; font-weight: 800; }
.vve-pagination .page-numbers.current, .vve-pagination .page-numbers:hover { border-color: var(--vve-forest); background: var(--vve-forest); color: var(--vve-white); }

.vve-article-page { background: var(--vve-white); }
.vve-article-shell { width: min(860px, calc(100% - 40px)); margin-inline: auto; }
.vve-article-header { padding: 72px 0 50px; background: var(--vve-sand); }
.vve-article-header h1 { margin: 0; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(40px, 6vw, 64px); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
.vve-article-lead { max-width: 760px; margin: 22px 0; color: #53605b; font-size: 19px; }
.vve-article-meta { margin-bottom: 0; }
.vve-article-cover { width: 100%; height: clamp(320px, 52vw, 540px); margin-top: 54px; object-fit: cover; border-radius: 20px; }
.vve-article-body { padding: 46px 0 62px; color: #3f4b47; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; line-height: 1.85; }
.vve-article-body > p:first-child { color: var(--vve-forest); font-size: 22px; line-height: 1.65; }
.vve-article-body h2 { margin: 54px 0 18px; color: var(--vve-forest); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 4vw, 40px); font-weight: 500; line-height: 1.2; }
.vve-article-body h3 { margin: 34px 0 12px; color: var(--vve-forest); font-size: 25px; line-height: 1.3; }
.vve-article-body ul, .vve-article-body ol { padding-left: 26px; }
.vve-article-body li { margin-bottom: 10px; }
.vve-article-body strong { color: #233c34; }
.vve-article-body table { width: 100%; margin: 30px 0; border-collapse: collapse; font-family: Inter, Arial, sans-serif; font-size: 14px; line-height: 1.5; }
.vve-article-body th, .vve-article-body td { padding: 14px; border: 1px solid var(--vve-line); text-align: left; vertical-align: top; }
.vve-article-body th { background: var(--vve-forest); color: var(--vve-white); }
.vve-article-body tr:nth-child(even) td { background: var(--vve-cream); }
.vve-article-cta { display: flex; align-items: center; justify-content: space-between; gap: 34px; margin-top: 54px; padding: 34px; border-radius: 18px; background: var(--vve-forest); color: rgba(255,255,255,.78); font-family: Inter, Arial, sans-serif; }
.vve-article-cta h2 { margin: 0; color: var(--vve-white); font-family: Georgia, 'Times New Roman', serif; font-size: 30px; }
.vve-article-cta p:not(.vve-kicker) { max-width: 560px; margin: 8px 0 0; font-size: 14px; line-height: 1.6; }
.vve-article-cta .vve-button { flex: 0 0 auto; }
.vve-article-footer { display: flex; justify-content: space-between; gap: 20px; padding: 26px 0 76px; border-top: 1px solid var(--vve-line); color: var(--vve-leaf); font-size: 14px; font-weight: 900; }

.vve-inner-hero { padding: 76px 0; background: var(--vve-sand); text-align: center; }
.vve-inner-hero h1 { margin: 0; color: var(--vve-forest); font-family: Georgia, serif; font-size: clamp(40px, 6vw, 64px); font-weight: 500; line-height: 1.1; }
.vve-inner-hero p:last-child { margin: 14px auto 0; color: var(--vve-muted); }
.vve-catalog-section { padding-top: 46px; }
.vve-search-catalog { max-width: none; margin-top: -80px; border: 1px solid var(--vve-line); }
.vve-catalog-title { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 50px 0 24px; }
.vve-catalog-title h2 { margin: 0; color: var(--vve-forest); font-family: Georgia, serif; font-size: 32px; font-weight: 500; }
.vve-catalog-title a { color: var(--vve-leaf); font-size: 13px; font-weight: 800; }

.vve-property-page { padding: 48px 0 96px; }
.vve-back-link { display: inline-block; margin-bottom: 28px; color: var(--vve-leaf); font-size: 14px; font-weight: 800; }
.vve-property-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.vve-property-heading h1 { max-width: 800px; margin: 0 0 8px; color: var(--vve-forest); font-family: Georgia, serif; font-size: clamp(38px, 5vw, 58px); font-weight: 500; line-height: 1.1; }
.vve-property-heading p:last-child { margin: 0; color: var(--vve-muted); }
.vve-property-heading > strong { color: var(--vve-forest); font-size: 28px; white-space: nowrap; }
.vve-property-cover { width: 100%; height: clamp(340px, 55vw, 650px); object-fit: cover; border-radius: 20px; }
.vve-property-content { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 70px; padding-top: 54px; }
.vve-property-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 42px; border: 1px solid var(--vve-line); border-radius: 14px; }
.vve-property-facts span { display: grid; gap: 3px; padding: 20px; border-right: 1px solid var(--vve-line); color: var(--vve-muted); font-size: 12px; }
.vve-property-facts span:last-child { border-right: 0; }
.vve-property-facts b { color: var(--vve-forest); font-size: 19px; }
.vve-property-description { margin-top: 18px; color: #4f5b57; font-size: 16px; }
.vve-contact-card { align-self: start; position: sticky; top: 28px; padding: 30px; border-radius: 18px; background: var(--vve-sand); }
.vve-contact-card h2 { font-size: 34px; }
.vve-contact-card > p:not(.vve-kicker) { color: var(--vve-muted); }
.vve-contact-card .vve-button, .vve-secondary-button { width: 100%; margin-top: 12px; }
.vve-secondary-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid #aebbb5; border-radius: 999px; color: var(--vve-forest); font-weight: 800; }

.vve-seo-hero { text-align: left; }
.vve-seo-hero h1 { max-width: 900px; }
.vve-seo-intro { max-width: 760px; margin-top: 18px; color: var(--vve-muted); }
.vve-seo-copy { max-width: 820px; }
.vve-seo-copy > p { color: var(--vve-muted); }
.vve-faq { display: grid; gap: 10px; margin-top: 28px; }
.vve-faq details { padding: 18px 20px; border: 1px solid #e2ddd3; border-radius: 12px; background: var(--vve-white); }
.vve-faq summary { color: var(--vve-forest); font-weight: 800; cursor: pointer; }
.vve-faq p { margin-bottom: 0; color: var(--vve-muted); }

.vve-page-shell { min-height: 60vh; padding: 64px 0; }
.vve-page-content { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.vve-submit-hero { padding: 68px 0; background: var(--vve-sand); }
.vve-submit-hero .vve-container { max-width: 900px; text-align: center; }
.vve-submit-hero h1 { margin: 0; color: var(--vve-forest); font-family: Georgia, serif; font-size: clamp(40px, 6vw, 62px); font-weight: 500; line-height: 1.08; }
.vve-submit-hero p:last-child { max-width: 680px; margin: 16px auto 0; color: var(--vve-muted); }
.vve-submit-section { padding: 72px 0 96px; background: var(--vve-cream); }
.vve-submit-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: start; gap: 48px; }
.vve-submit-form { padding: 34px; border: 1px solid var(--vve-line); border-radius: 18px; background: var(--vve-white); box-shadow: 0 12px 36px rgba(18,60,50,.07); }
.vve-submit-form h2 { margin: 0 0 24px; color: var(--vve-forest); font-family: Georgia, serif; font-size: 32px; font-weight: 500; }
.vve-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.vve-field { display: grid; gap: 7px; }
.vve-field-full { grid-column: 1 / -1; }
.vve-field label { color: #33413d; font-size: 13px; font-weight: 800; }
.vve-field input, .vve-field select, .vve-field textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #cbd5d0; border-radius: 10px; outline: 0; background: var(--vve-white); color: var(--vve-ink); }
.vve-field textarea { min-height: 150px; resize: vertical; }
.vve-field input:focus, .vve-field select:focus, .vve-field textarea:focus { border-color: var(--vve-leaf); box-shadow: 0 0 0 3px rgba(47,125,76,.12); }
.vve-field small { color: var(--vve-muted); font-size: 12px; }
.vve-submit-actions { display: flex; align-items: center; gap: 18px; margin-top: 24px; }
.vve-submit-actions .vve-button { cursor: pointer; }
.vve-submit-actions small { color: var(--vve-muted); }
.vve-submit-note { padding: 28px; border-radius: 16px; background: var(--vve-forest); color: rgba(255,255,255,.82); }
.vve-submit-note h2 { margin: 0 0 18px; color: var(--vve-white); font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.vve-submit-note ol { display: grid; gap: 16px; margin: 0; padding-left: 20px; }
.vve-submit-note li::marker { color: var(--vve-gold); font-weight: 900; }
.vve-form-message { margin-bottom: 24px; padding: 16px 18px; border-radius: 11px; font-weight: 700; }
.vve-form-success { border: 1px solid #a9cfb5; background: #eaf6ee; color: #175c35; }
.vve-form-error { border: 1px solid #e5b8b1; background: #fff0ed; color: #8d2d21; }
.vve-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.vve-post-list { display: grid; gap: 24px; }
.vve-post-list article { padding: 24px; border: 1px solid var(--vve-line); border-radius: 14px; }
.vve-post-list h2 { margin-top: 0; color: var(--vve-forest); font-family: Georgia, serif; }
.vve-empty-page { min-height: 65vh; display: grid; place-items: center; padding: 60px 20px; text-align: center; }
.vve-empty-page h1 { margin: 0; color: var(--vve-forest); font-family: Georgia, serif; font-size: 52px; }

.vve-site-footer { padding: 64px 0 24px; background: #0d2e27; color: rgba(255,255,255,.72); }
.vve-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 70px; }
.vve-footer-brand { color: var(--vve-white); font-family: Georgia, serif; font-size: 30px; }
.vve-footer-grid p { max-width: 420px; }
.vve-footer-grid h2 { margin: 0 0 14px; color: var(--vve-white); font-size: 14px; text-transform: uppercase; letter-spacing: .1em; }
.vve-footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.vve-footer-grid a:hover { color: var(--vve-white); }
.vve-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12px; }

@media (max-width: 980px) {
  .vve-navigation { display: none; position: absolute; left: 0; right: 0; top: 86px; padding: 18px 20px 26px; background: var(--vve-white); border-top: 1px solid var(--vve-line); box-shadow: 0 16px 30px rgba(18,60,50,.12); }
  .vve-navigation.is-open { display: block; }
  .vve-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .vve-menu a { display: block; padding: 12px 0; }
  .vve-menu-toggle { display: block; }
  .vve-header-cta { display: none; }
  .vve-search { grid-template-columns: repeat(2, 1fr); }
  .vve-search label { border-right: 0; border-bottom: 1px solid var(--vve-line); }
  .vve-property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vve-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vve-city-grid { grid-template-columns: repeat(2, 1fr); }
  .vve-service-grid { grid-template-columns: 1fr; gap: 46px; }
  .vve-property-content { grid-template-columns: 1fr; gap: 40px; }
  .vve-contact-card { position: static; }
  .vve-submit-layout { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .vve-container, .vve-page-content { width: min(100% - 28px, 1180px); }
  .vve-site-header { height: 76px; }
  .vve-brand img, .vve-brand .custom-logo { width: 48px; height: 48px; }
  .vve-brand strong { font-size: 19px; }
  .vve-brand small { font-size: 9px; }
  .vve-navigation { top: 76px; }
  .vve-hero { min-height: auto; background-position: 62% center; }
  .vve-hero-content { padding-block: 70px; }
  .vve-hero h1 br { display: none; }
  .vve-hero-lead { font-size: 16px; }
  .vve-search { grid-template-columns: 1fr; padding: 12px; }
  .vve-search label { padding-bottom: 8px; }
  .vve-confidence .vve-container { align-items: flex-start; flex-direction: column; gap: 12px; padding-block: 20px; }
  .vve-local-intro { padding: 42px 0 8px; }
  .vve-local-intro p { font-size: 15px; }
  .vve-section { padding: 64px 0; }
  #propiedades.vve-section { padding-top: 38px; }
  .vve-section-heading { align-items: flex-start; flex-direction: column; }
  .vve-property-grid, .vve-city-grid { grid-template-columns: 1fr; }
  .vve-blog-grid { grid-template-columns: 1fr; }
  .vve-blog-card h2, .vve-blog-card h3 { min-height: 0; }
  .vve-blog-hero { padding: 64px 0; }
  .vve-article-shell { width: min(100% - 28px, 860px); }
  .vve-article-header { padding: 54px 0 40px; }
  .vve-article-cover { height: 300px; margin-top: 36px; }
  .vve-article-body { padding-top: 34px; font-size: 17px; }
  .vve-article-body .wp-block-table { overflow-x: auto; }
  .vve-article-cta { align-items: flex-start; flex-direction: column; padding: 26px; }
  .vve-article-footer { align-items: flex-start; flex-direction: column; }
  .vve-card-body h3 { min-height: 0; }
  .vve-contact-strip .vve-container { align-items: flex-start; flex-direction: column; }
  .vve-search-catalog { margin-top: -60px; }
  .vve-catalog-title { align-items: flex-start; flex-direction: column; }
  .vve-property-page { padding-top: 30px; }
  .vve-property-heading { align-items: flex-start; flex-direction: column; }
  .vve-property-cover { height: 330px; }
  .vve-property-facts { grid-template-columns: 1fr; }
  .vve-property-facts span { border-right: 0; border-bottom: 1px solid var(--vve-line); }
  .vve-property-facts span:last-child { border-bottom: 0; }
  .vve-submit-section { padding: 46px 0 64px; }
  .vve-submit-form { padding: 22px; }
  .vve-form-grid { grid-template-columns: 1fr; }
  .vve-field-full { grid-column: auto; }
  .vve-submit-actions { align-items: flex-start; flex-direction: column; }
  .vve-footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .vve-footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}

/* =========================================================
   Valle Verde 3.0 — navegación, buscador, catálogo y blog
   ========================================================= */
.vve-site-header { position: relative; z-index: 80; overflow: visible; }
.vve-header-inner { position: relative; gap: 24px; }
.vve-brand img, .vve-brand .custom-logo { background: #fff; }
.vve-navigation { position: static; }
.vve-mega-navigation { gap: 22px; }
.vve-nav-item { position: static; }
.vve-nav-label { display: flex; align-items: center; gap: 3px; }
.vve-submenu-toggle { display: none; border: 0; background: transparent; color: var(--vve-muted); cursor: pointer; font-size: 17px; line-height: 1; }
.vve-has-mega > .vve-mega-menu { position: absolute; left: 20px; right: 20px; top: calc(100% - 1px); display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 34px; visibility: hidden; opacity: 0; transform: translateY(9px); pointer-events: none; padding: 30px; border: 1px solid var(--vve-line); border-radius: 0 0 18px 18px; background: rgba(255,255,255,.99); box-shadow: 0 24px 55px rgba(18,60,50,.14); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }
.vve-has-mega:hover > .vve-mega-menu,
.vve-has-mega:focus-within > .vve-mega-menu { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
.vve-mega-menu-compact { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 760px; left: auto !important; }
.vve-mega-menu-blog { grid-template-columns: 1.1fr .9fr !important; max-width: 780px; left: auto !important; }
.vve-mega-column { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.vve-mega-column h2 { margin: 0 0 9px; color: var(--vve-forest); font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.vve-mega-column a { width: 100%; padding: 4px 0; color: #3f4b47; font-weight: 600; }
.vve-mega-column a:hover { color: var(--vve-leaf); }
.vve-mega-feature { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 26px; border-radius: 14px; background: var(--vve-forest); color: #fff; }
.vve-mega-feature span { color: #e9c36c; font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.vve-mega-feature strong { max-width: 360px; font-family: Georgia, serif; font-size: 24px; line-height: 1.2; }
.vve-mega-feature a { color: #fff; font-size: 13px; font-weight: 800; }
.vve-mega-feature-light { background: var(--vve-sand); color: var(--vve-forest); }
.vve-mega-feature-light span { color: var(--vve-gold); }
.vve-mega-feature-light a { color: var(--vve-leaf); }

/* Buscador avanzado */
.vve-smart-search { display: block; max-width: 1110px; padding: 0; overflow: visible; border-radius: 18px; background: transparent; box-shadow: none; }
.vve-search-tabs { display: inline-flex; gap: 3px; padding: 7px 8px 0; border-radius: 14px 14px 0 0; background: #fff; }
.vve-operation-tab { min-width: 104px; height: 44px; padding: 0 15px; border: 0; border-bottom: 3px solid transparent; border-radius: 9px 9px 0 0; background: #fff; color: #42504b; font-weight: 800; cursor: pointer; }
.vve-operation-tab:hover, .vve-operation-tab.is-active { color: var(--vve-forest); background: #f5f7f6; border-bottom-color: var(--vve-gold); }
.vve-search-main-row { position: relative; display: grid; grid-template-columns: minmax(230px, .8fr) minmax(320px, 1.5fr) auto; gap: 12px; align-items: stretch; padding: 12px; border-radius: 0 18px 18px 18px; background: #fff; box-shadow: var(--vve-shadow); }
.vve-search-extra-row { display: grid; grid-template-columns: minmax(150px, .55fr) minmax(150px, .55fr) minmax(300px, 1.3fr); gap: 10px; margin-top: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 8px 28px rgba(16,45,37,.12); }
.vve-search-field { position: relative; display: grid !important; gap: 3px !important; padding: 8px 13px !important; border: 1px solid #cfdbd6 !important; border-radius: 11px; background: #fff; }
.vve-search-field > span { color: #62706b !important; font-size: 10px !important; font-weight: 900 !important; letter-spacing: .07em !important; text-transform: uppercase; }
.vve-search-field input, .vve-search-field select { width: 100%; min-width: 0; height: 30px !important; padding: 0 !important; border: 0 !important; outline: 0; background: transparent !important; color: var(--vve-ink); font-size: 15px; font-weight: 700; }
.vve-search-field:focus-within { border-color: #72a787 !important; box-shadow: 0 0 0 3px rgba(47,125,76,.10); }
.vve-search-submit { min-width: 130px; height: auto !important; padding: 0 28px !important; border-radius: 11px !important; background: var(--vve-gold) !important; color: #2b2009 !important; font-size: 16px; font-weight: 900; cursor: pointer; }
.vve-search-submit:hover { background: #e8ad3b !important; }
.vve-sector-suggestions { position: absolute; z-index: 50; left: -1px; right: -1px; top: calc(100% + 5px); display: none; max-height: 250px; overflow-y: auto; padding: 7px; border: 1px solid #cfdad5; border-radius: 11px; background: #fff; box-shadow: 0 16px 38px rgba(18,60,50,.17); }
.vve-sector-suggestions.is-open { display: grid; }
.vve-sector-suggestions button { height: auto !important; padding: 9px 11px !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: #33413d !important; text-align: left; font-size: 14px; font-weight: 700; cursor: pointer; }
.vve-sector-suggestions button:hover { background: #eef5f1 !important; color: var(--vve-leaf) !important; }
.vve-hero .vve-smart-search { margin-top: 34px; }

/* Precios y tarjetas */
.vve-card-price { display: grid; gap: 1px; }
.vve-card-price small, .vve-property-price small { color: var(--vve-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.vve-card-price strong { font-size: 19px; }
.vve-property-price { display: grid; justify-items: end; gap: 2px; }
.vve-property-price strong { color: var(--vve-forest); font-size: 29px; white-space: nowrap; }
.vve-heading-link { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 15px; border: 1px solid #bdd0c6; border-radius: 999px; background: #fff; }
.vve-heading-link:hover { border-color: var(--vve-leaf); background: #f3f8f5; }

/* Catálogo */
.vve-catalog-hero { padding-bottom: 120px; }
.vve-catalog-section { padding-top: 0; }
.vve-search-catalog, .vve-smart-search-catalog { margin-top: -88px; margin-bottom: 34px; }
.vve-catalog-groups { display: inline-flex; gap: 6px; margin: 0 0 32px; padding: 5px; border: 1px solid var(--vve-line); border-radius: 999px; background: #fff; }
.vve-catalog-groups a { padding: 9px 18px; border-radius: 999px; color: #56625e; font-size: 13px; font-weight: 800; }
.vve-catalog-groups a:hover, .vve-catalog-groups a.is-active { background: var(--vve-forest); color: #fff; }
.vve-catalog-title { margin-bottom: 28px; }
.vve-catalog-title h2 { margin: 0; color: var(--vve-forest); font-family: Georgia, serif; font-size: clamp(30px, 4vw, 42px); font-weight: 500; }

/* Slider de propiedades */
.vve-property-slider { width: 100%; margin-top: 8px; touch-action: pan-y; user-select: none; }
.vve-slider-viewport { position: relative; overflow: hidden; border-radius: 20px; background: #dce3df; }
.vve-slider-track { display: flex; width: 100%; transition: transform .42s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.vve-slider-slide { flex: 0 0 100%; width: 100%; margin: 0; }
.vve-slider-slide img { width: 100%; height: clamp(340px, 55vw, 650px); object-fit: cover; }
.vve-slider-arrow { position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; width: 46px; height: 46px; margin-top: -23px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--vve-forest); box-shadow: 0 8px 24px rgba(12,39,32,.18); font-size: 34px; line-height: 1; cursor: pointer; }
.vve-slider-prev { left: 18px; }
.vve-slider-next { right: 18px; }
.vve-slider-arrow:hover { background: #fff; transform: scale(1.04); }
.vve-slider-dots { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 34px; padding-top: 12px; }
.vve-slider-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: #b9c4bf; cursor: pointer; transition: width .2s ease, background .2s ease, border-radius .2s ease; }
.vve-slider-dots button.is-active { width: 24px; border-radius: 999px; background: var(--vve-leaf); }
.vve-property-facts { grid-template-columns: repeat(4, 1fr); }
.vve-property-facts-terrain { grid-template-columns: minmax(200px, 1fr); max-width: 330px; }
.vve-property-facts-terrain span { border-right: 0; }
.vve-contact-direct { display: block; margin-top: 15px; color: var(--vve-muted); line-height: 1.6; }

/* Blog organizado por categorías */
.vve-blog-hero-modern { background: linear-gradient(135deg, #0d3027 0%, #164a3b 100%); color: rgba(255,255,255,.84); }
.vve-blog-hero-modern h1 { max-width: 920px; color: #fff; }
.vve-blog-hero-modern > .vve-container > p:not(.vve-kicker) { max-width: 780px; }
.vve-blog-categories { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.vve-blog-categories a { padding: 8px 13px; border: 1px solid rgba(18,60,50,.16); border-radius: 999px; background: #fff; color: var(--vve-forest); font-size: 12px; font-weight: 800; box-shadow: 0 4px 14px rgba(18,60,50,.05); }
.vve-blog-hero-modern .vve-blog-categories a { border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.10); color: #fff; box-shadow: none; }
.vve-blog-categories a:hover { border-color: var(--vve-gold); }
.vve-blog-section .vve-blog-categories { margin: -12px 0 28px; }
.vve-blog-grid-index { align-items: stretch; }
.vve-back-link-light { color: rgba(255,255,255,.82); }

/* Artículo con lateral y relacionados */
.vve-article-shell-wide { width: min(1180px, calc(100% - 40px)); }
.vve-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 64px; align-items: start; }
.vve-article-main { min-width: 0; }
.vve-article-sidebar { position: sticky; top: 28px; display: grid; gap: 24px; padding-top: 46px; }
.vve-sidebar-box { padding: 22px; border: 1px solid var(--vve-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(18,60,50,.06); }
.vve-sidebar-box h2 { margin: 0 0 17px; color: var(--vve-forest); font-size: 18px; line-height: 1.25; }
.vve-sidebar-property-links { display: grid; gap: 10px; }
.vve-sidebar-property-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 12px 14px; border: 1px solid #d9e2de; border-radius: 11px; color: #3b4743; font-size: 13px; font-weight: 700; }
.vve-sidebar-property-links a b { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; background: #eaf4ee; color: var(--vve-leaf); }
.vve-sidebar-property-links a:hover { border-color: #8cb49c; }
.vve-sidebar-related { display: grid; gap: 14px; }
.vve-sidebar-related > a { display: grid; grid-template-columns: 82px 1fr; gap: 12px; align-items: center; }
.vve-sidebar-related > a img { width: 82px; height: 68px; border-radius: 10px; object-fit: cover; }
.vve-sidebar-related > a span { display: grid; gap: 4px; }
.vve-sidebar-related small { color: var(--vve-gold); font-size: 10px; font-weight: 800; }
.vve-sidebar-related strong { color: #37433f; font-size: 13px; line-height: 1.3; }
.vve-article-related-bottom { margin-top: 54px; padding-top: 34px; border-top: 1px solid var(--vve-line); }
.vve-article-related-heading { margin-bottom: 18px; }
.vve-article-related-heading h2 { font-size: 30px; }
.vve-related-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.vve-related-card { display: grid; gap: 10px; }
.vve-related-card img { width: 100%; aspect-ratio: 4 / 3; border-radius: 12px; object-fit: cover; }
.vve-related-card span { display: grid; gap: 3px; }
.vve-related-card small { color: var(--vve-gold); font-size: 10px; font-weight: 800; }
.vve-related-card strong { color: var(--vve-forest); font-size: 14px; line-height: 1.35; }

@media (max-width: 1080px) {
  .vve-mega-navigation { gap: 14px; }
  .vve-menu a { font-size: 13px; }
  .vve-header-cta { padding-inline: 16px; }
  .vve-search-main-row { grid-template-columns: minmax(200px, .8fr) minmax(260px, 1.25fr) auto; }
  .vve-article-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 40px; }
}

@media (max-width: 980px) {
  body.menu-open { overflow: hidden; }
  .vve-navigation { position: absolute; top: 86px; left: 0; right: 0; display: none; max-height: calc(100vh - 86px); overflow-y: auto; margin: 0; padding: 16px 20px 26px; background: #fff; border-top: 1px solid var(--vve-line); box-shadow: 0 18px 35px rgba(18,60,50,.14); }
  .vve-navigation.is-open { display: block; }
  .vve-mega-navigation { display: block; }
  .vve-nav-item { border-bottom: 1px solid #edf0ee; }
  .vve-nav-label { justify-content: space-between; }
  .vve-nav-item > a, .vve-nav-label > a { display: block; flex: 1; padding: 13px 0; }
  .vve-submenu-toggle { display: block; width: 42px; height: 42px; }
  .vve-has-mega > .vve-mega-menu { position: static; display: none; visibility: visible; opacity: 1; transform: none; pointer-events: auto; grid-template-columns: 1fr !important; max-width: none; padding: 8px 0 18px 18px; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
  .vve-has-mega:hover > .vve-mega-menu, .vve-has-mega:focus-within > .vve-mega-menu { display: none; }
  .vve-has-mega.is-mobile-open > .vve-mega-menu { display: grid; }
  .vve-mega-feature { display: none; }
  .vve-search-main-row { grid-template-columns: 1fr 1.25fr auto; }
  .vve-search-extra-row { grid-template-columns: repeat(2, 1fr); }
  .vve-search-features { grid-column: 1 / -1; }
  .vve-property-facts { grid-template-columns: repeat(2, 1fr); }
  .vve-property-facts span:nth-child(2) { border-right: 0; }
  .vve-property-facts span:nth-child(-n+2) { border-bottom: 1px solid var(--vve-line); }
  .vve-article-layout { grid-template-columns: 1fr; }
  .vve-article-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 10px; }
}

@media (max-width: 680px) {
  .vve-navigation { top: 76px; max-height: calc(100vh - 76px); }
  .vve-smart-search { width: 100%; }
  .vve-search-tabs { width: auto; max-width: 100%; }
  .vve-operation-tab { min-width: 92px; }
  .vve-search-main-row { grid-template-columns: 1fr; border-radius: 0 15px 15px 15px; }
  .vve-search-extra-row { grid-template-columns: 1fr; }
  .vve-search-features { grid-column: auto; }
  .vve-search-submit { min-height: 52px; }
  .vve-sector-suggestions { position: static; margin-top: 5px; }
  .vve-catalog-hero { padding-bottom: 105px; }
  .vve-search-catalog, .vve-smart-search-catalog { margin-top: -78px; }
  .vve-catalog-groups { display: flex; width: 100%; overflow-x: auto; }
  .vve-catalog-groups a { white-space: nowrap; }
  .vve-card-footer { align-items: flex-end; }
  .vve-property-price { justify-items: start; }
  .vve-slider-slide img { height: 330px; }
  .vve-slider-arrow { width: 40px; height: 40px; margin-top: -20px; }
  .vve-slider-prev { left: 10px; }
  .vve-slider-next { right: 10px; }
  .vve-property-facts { grid-template-columns: 1fr; }
  .vve-property-facts span, .vve-property-facts span:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--vve-line); }
  .vve-property-facts span:last-child { border-bottom: 0; }
  .vve-property-facts-terrain { max-width: none; }
  .vve-blog-categories { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .vve-blog-categories a { flex: 0 0 auto; }
  .vve-article-shell-wide { width: min(100% - 28px, 1180px); }
  .vve-article-sidebar { grid-template-columns: 1fr; }
  .vve-related-cards { grid-template-columns: 1fr; }
  .vve-related-card { grid-template-columns: 110px 1fr; align-items: center; }
  .vve-related-card img { width: 110px; aspect-ratio: 1 / 1; }
}

@media (prefers-reduced-motion: reduce) {
  .vve-has-mega > .vve-mega-menu, .vve-slider-track, .vve-slider-dots button { transition: none !important; }
}

.vve-question-section { margin-top: 72px; padding-top: 46px; border-top: 1px solid var(--vve-line); }
.vve-question-heading { margin-bottom: 22px; }
.vve-question-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.vve-question-card { display: flex; flex-direction: column; min-height: 245px; padding: 22px; border: 1px solid var(--vve-line); border-radius: 15px; background: #fff; box-shadow: 0 7px 24px rgba(18,60,50,.05); }
.vve-question-card:hover { border-color: #9cbdab; transform: translateY(-2px); }
.vve-question-card small { color: var(--vve-gold); font-size: 10px; font-weight: 900; }
.vve-question-card strong { margin-top: 10px; color: var(--vve-forest); font-family: Georgia, serif; font-size: 20px; line-height: 1.25; }
.vve-question-card p { color: var(--vve-muted); font-size: 13px; }
.vve-question-card span { margin-top: auto; color: var(--vve-leaf); font-size: 12px; font-weight: 900; }
@media (max-width: 980px) { .vve-question-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .vve-question-grid { grid-template-columns: 1fr; } .vve-question-card { min-height: 0; } }

/* =========================================================
   Valle Verde 4.0 — ajustes finales
   ========================================================= */
.vve-simple-property-search { max-width: 920px; }
.vve-search-main-row-simple { grid-template-columns: minmax(250px, .95fr) minmax(280px, 1.15fr) auto; border-radius: 18px; }
.vve-property-price span { margin-top: 4px; color: var(--vve-muted); font-size: 12px; font-weight: 700; }
.vve-slider-video iframe { display: block; width: 100%; height: clamp(340px, 55vw, 650px); border: 0; background: #000; }
.vve-property-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 22px 0 36px; overflow: hidden; border: 1px solid var(--vve-line); border-radius: 14px; }
.vve-property-detail-list > div { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 13px 16px; border-bottom: 1px solid var(--vve-line); }
.vve-property-detail-list > div:nth-child(odd) { border-right: 1px solid var(--vve-line); }
.vve-property-detail-list dt { color: var(--vve-muted); font-size: 12px; font-weight: 800; }
.vve-property-detail-list dd { margin: 0; color: var(--vve-forest); font-size: 13px; font-weight: 800; text-align: right; }
.vve-property-description h2, .vve-property-description h3 { color: var(--vve-forest); font-family: Georgia, serif; font-weight: 500; }
.vve-property-description h2 { margin: 34px 0 12px; font-size: 27px; }
.vve-property-description h3 { margin: 24px 0 8px; font-size: 21px; }
.vve-property-description p { margin: 0 0 14px; }
.vve-property-description ul, .vve-property-description ol { margin: 8px 0 20px; padding-left: 22px; }
.vve-property-documents, .vve-property-location { margin-top: 52px; padding-top: 34px; border-top: 1px solid var(--vve-line); }
.vve-property-documents > h2, .vve-property-location > h2 { margin: 0 0 18px; color: var(--vve-forest); font-family: Georgia, serif; font-size: 32px; font-weight: 500; }
.vve-document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.vve-document-grid a { overflow: hidden; border: 1px solid var(--vve-line); border-radius: 13px; background: #f7f8f7; }
.vve-document-grid img { width: 100%; height: 360px; object-fit: contain; }
.vve-location-note { display: inline-block; margin: 0 0 8px !important; padding: 8px 11px; border-radius: 8px; background: #fff5db; color: #77540d !important; font-size: 13px; font-weight: 800; }
.vve-map-frame { overflow: hidden; margin-top: 14px; border: 1px solid var(--vve-line); border-radius: 16px; }
.vve-map-frame iframe { display: block; width: 100%; height: 390px; border: 0; }
.vve-inline-cta { display: inline-flex; margin: 8px 0 12px; padding: 11px 15px; border-radius: 999px; background: var(--vve-forest); color: #fff !important; font-size: 14px; font-weight: 800; }
.vve-inline-cta:hover { background: var(--vve-leaf); }
.vve-article-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 52px; }
.vve-related-sidebar { position: sticky; top: 24px; display: grid; gap: 14px; align-self: start; padding-top: 46px; }
.vve-related-sidebar h2 { margin: 0 0 6px; color: var(--vve-forest); font-family: Georgia, serif; font-size: 24px; font-weight: 500; }
.vve-related-sidebar .vve-related-card { grid-template-columns: 96px 1fr; align-items: center; padding: 10px; border: 1px solid var(--vve-line); border-radius: 12px; background: #fff; }
.vve-related-sidebar .vve-related-card img { width: 96px; height: 82px; aspect-ratio: auto; object-fit: cover; }
.vve-related-sidebar .vve-related-card small { color: var(--vve-gold); font-size: 10px; font-weight: 800; }
.vve-related-sidebar .vve-related-card strong { font-size: 13px; line-height: 1.35; }
.vve-blog-grid-all { margin-top: 28px; }

@media (min-width: 981px) {
  .vve-navigation, .vve-mega-navigation, .vve-nav-item, .vve-nav-label { height: 100%; }
  .vve-mega-navigation { align-items: stretch; }
  .vve-nav-item { display: flex; align-items: center; }
  .vve-nav-label { align-items: center; }
  .vve-nav-item > a { display: inline-flex; align-items: center; height: 100%; }
  .vve-has-mega > .vve-mega-menu { top: 100%; }
  .vve-nav-label .vve-submenu-toggle { display: inline-block; width: 22px; height: 28px; padding: 0; font-size: 18px; }
}

@media (max-width: 980px) {
  .vve-search-main-row-simple { grid-template-columns: 1fr 1fr auto; }
  .vve-article-layout { grid-template-columns: 1fr; }
  .vve-related-sidebar { position: static; padding-top: 14px; }
}

@media (max-width: 680px) {
  .vve-search-main-row-simple { grid-template-columns: 1fr; border-radius: 15px; }
  .vve-property-detail-list { grid-template-columns: 1fr; }
  .vve-property-detail-list > div:nth-child(odd) { border-right: 0; }
  .vve-document-grid { grid-template-columns: 1fr; }
  .vve-document-grid img { height: 300px; }
  .vve-slider-video iframe { height: 330px; }
  .vve-map-frame iframe { height: 320px; }
  .vve-related-sidebar .vve-related-card { grid-template-columns: 88px 1fr; }
  .vve-related-sidebar .vve-related-card img { width: 88px; height: 76px; }
}

.vve-property-facts-three { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 680px) { .vve-property-facts-three { grid-template-columns: 1fr; } }


/* Valle Verde 5.0: herramientas, redes y video local */
.vve-useful-tools { margin-top: 54px; }
.vve-tool-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.vve-tool-card { display:flex; flex-direction:column; min-height:245px; padding:28px; border:1px solid var(--vve-line); border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(18,60,50,.06); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.vve-tool-card:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgba(18,60,50,.11); border-color:rgba(34,105,86,.35); }
.vve-tool-card span { color:var(--vve-gold); font-size:12px; font-weight:800; letter-spacing:.08em; }
.vve-tool-card h3 { margin:10px 0 10px; color:var(--vve-forest); font-size:22px; line-height:1.22; }
.vve-tool-card p { margin:0 0 20px; color:var(--vve-muted); line-height:1.55; }
.vve-tool-card b { margin-top:auto; color:var(--vve-forest); }
.vve-social-follow { margin-top:20px; }
.vve-social-follow h3 { margin:0 0 10px; color:#fff; font-size:16px; }
.vve-social-icons { display:flex; align-items:center; gap:10px; }
.vve-social-icons a { display:grid !important; place-items:center; width:40px; height:40px; padding:0 !important; border:1px solid rgba(255,255,255,.22); border-radius:50%; background:rgba(255,255,255,.08); }
.vve-social-icons a:hover { background:rgba(255,255,255,.18); }
.vve-social-icons svg { width:21px; height:21px; fill:#fff; }
.vve-slider-video video { display:block; width:100%; height:clamp(340px,55vw,650px); object-fit:contain; background:#000; }
@media (max-width: 900px) { .vve-tool-grid { grid-template-columns:1fr; } }
@media (max-width: 680px) { .vve-slider-video video { height:330px; } }


/* Valle Verde 6.0: Comprar / Alquilar / Proyectos, quiénes somos y páginas de servicios */
.vve-search-tabs { width: fit-content; }
.vve-operation-tab { display:inline-flex; align-items:center; justify-content:center; }
.vve-about-details { margin:0 0 42px; overflow:hidden; border:1px solid var(--vve-line); border-radius:18px; background:#f8fbf9; box-shadow:0 10px 32px rgba(18,60,50,.06); }
.vve-about-details summary { position:relative; padding:23px 64px 23px 26px; color:var(--vve-forest); font-family:Georgia,'Times New Roman',serif; font-size:clamp(27px,3vw,36px); font-weight:600; cursor:pointer; list-style:none; }
.vve-about-details summary::-webkit-details-marker { display:none; }
.vve-about-details summary::after { content:'+'; position:absolute; right:24px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--vve-forest); color:#fff; font-family:Arial,sans-serif; font-size:22px; }
.vve-about-details[open] summary::after { content:'–'; }
.vve-about-copy { padding:0 28px 26px; border-top:1px solid var(--vve-line); }
.vve-about-copy p { max-width:980px !important; margin:18px 0 0 !important; color:#4f5d58 !important; line-height:1.75 !important; }

.vve-property-facts-flex { display:flex !important; flex-wrap:wrap; grid-template-columns:none !important; }
.vve-property-facts-flex > span { flex:1 1 150px; min-width:140px; }

.vve-service-page-hero { padding:78px 0 64px; background:linear-gradient(135deg,#0d4436,#17604b); color:#fff; }
.vve-service-page-hero .vve-kicker { color:#efc768; }
.vve-service-page-hero h1 { max-width:980px; margin:8px 0 16px; color:#fff; font-family:Georgia,'Times New Roman',serif; font-size:clamp(38px,5vw,58px); font-weight:500; line-height:1.08; }
.vve-service-page-hero p:not(.vve-kicker) { max-width:850px; margin:0; color:rgba(255,255,255,.88); font-size:18px; line-height:1.7; }
.vve-service-page-section { padding:64px 0 82px; background:#fff; }
.vve-service-page-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr); gap:64px; align-items:start; }
.vve-service-page-copy { max-width:820px; }
.vve-service-page-copy p { margin:0 0 22px; color:#485751; font-size:17px; line-height:1.8; }
.vve-service-page-cta { position:sticky; top:110px; padding:28px; border:1px solid var(--vve-line); border-radius:18px; background:#f7faf8; box-shadow:0 12px 35px rgba(18,60,50,.08); }
.vve-service-page-cta h2 { margin:8px 0 12px; color:var(--vve-forest); font-family:Georgia,'Times New Roman',serif; font-size:28px; font-weight:500; }
.vve-service-page-cta > p:not(.vve-kicker) { margin:0 0 22px; color:var(--vve-muted); line-height:1.65; }
.vve-service-page-cta .vve-button,.vve-service-page-cta .vve-secondary-button { width:100%; margin-top:10px; text-align:center; }
.vve-service-index-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.vve-service-index-card { display:flex; flex-direction:column; min-height:250px; padding:30px; border:1px solid var(--vve-line); border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(18,60,50,.06); }
.vve-service-index-card span { color:var(--vve-gold); font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.vve-service-index-card h2 { margin:10px 0; color:var(--vve-forest); font-family:Georgia,'Times New Roman',serif; font-size:30px; font-weight:500; }
.vve-service-index-card p { margin:0 0 22px; color:var(--vve-muted); line-height:1.65; }
.vve-service-index-card b { margin-top:auto; color:var(--vve-leaf); }

@media (max-width:900px) {
  .vve-service-page-layout { grid-template-columns:1fr; gap:34px; }
  .vve-service-page-cta { position:static; }
  .vve-service-index-grid { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .vve-search-tabs { display:grid; grid-template-columns:repeat(3,1fr); width:100%; padding:6px 6px 0; }
  .vve-operation-tab { min-width:0; padding:0 8px; font-size:13px; }
  .vve-about-details summary { padding:20px 58px 20px 20px; }
  .vve-about-copy { padding:0 20px 22px; }
  .vve-service-page-hero { padding:54px 0 46px; }
  .vve-service-page-section { padding:42px 0 58px; }
}

.vve-page-content-full { width:100%; margin:0; }

.vve-page-shell .vve-page-content-full { margin-top:-64px; margin-bottom:-64px; }
@media(max-width:680px){.vve-page-shell .vve-page-content-full{margin-top:-64px;margin-bottom:-64px;}}
