Alquiler Vacacional en Cádiz 2026 | Costa Ballena, Rota y Sanlúcar · Vega Home

Alquiler Vacacional en Cádiz 2026 | Costa Ballena, Rota y Sanlúcar · Vega Home

{
“@context”: “https://schema.org”,
“@graph”: [
{
“@type”: “RealEstateAgent”,
“@id”: “https://vegahomevacacional.es/#organization”,
“name”: “Vega Home Vacacional”,
“url”: “https://vegahomevacacional.es”,
“logo”: “https://vegahomevacacional.es/wp-content/uploads/2026/02/Untitled-Design.png”,
“description”: “Empresa líder en alquiler vacacional en el sur de Cádiz: Costa Ballena, Rota, Sanlúcar de Barrameda y Chipiona.”,
“telephone”: “+34644840212”,
“email”: “info@vegahomevacacional.es”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Rota”,
“addressRegion”: “Cádiz”,
“addressCountry”: “ES”
},
“areaServed”: [“Costa Ballena”, “Rota”, “Sanlúcar de Barrameda”, “Chipiona”, “Cádiz”],
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: “4.9”,
“reviewCount”: “247”,
“bestRating”: “5”
},
“sameAs”: [
“https://www.facebook.com/vegahomevacacional”,
“https://www.instagram.com/vegahomevacacional”
]
},
{
“@type”: “FAQPage”,
“@id”: “https://vegahomevacacional.es/#faq”,
“mainEntity”: [
{
“@type”: “Question”,
“name”: “¿Cuál es la mejor zona para alquilar en el sur de Cádiz?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “Costa Ballena destaca por sus playas de bandera azul y urbanización privada, perfecta para familias. Rota combina playa urbana y animación. Sanlúcar ofrece historia y la marisma del Parque de Doñana.”}
},
{
“@type”: “Question”,
“name”: “¿Se puede reservar directamente sin comisiones?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “Sí. En Vega Home Vacacional todas las reservas son directas con el propietario. Sin comisiones de intermediarios, precio garantizado y atención personalizada 7 días a la semana.”}
},
{
“@type”: “Question”,
“name”: “¿Cuándo es temporada alta en Costa Ballena y Rota?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “La temporada alta comprende julio y agosto. Semana Santa y los puentes de mayo también registran alta demanda. Recomendamos reservar con al menos 3 meses de antelación para julio y agosto.”}
},
{
“@type”: “Question”,
“name”: “¿Los alojamientos cuentan con piscina y WiFi?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “La mayoría de nuestros alojamientos disponen de piscina privada o comunitaria y WiFi de alta velocidad. Puedes filtrar por estas características al consultar disponibilidad.”}
},
{
“@type”: “Question”,
“name”: “¿Qué documentos necesito para alquilar?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “Necesitas DNI o pasaporte del titular de la reserva. Para cumplir con la normativa de viajeros, se solicitará la documentación de todos los huéspedes mayores de 14 años al hacer el check-in.”}
},
{
“@type”: “Question”,
“name”: “¿Ofrecéis servicios de mantenimiento para propietarios?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “Sí. Gestionamos limpieza, mantenimiento preventivo, fontanería, pintura y climatización para propietarios que quieren delegar la gestión integral de su vivienda vacacional.”}
},
{
“@type”: “Question”,
“name”: “¿Hay plazas de garaje disponibles en los alojamientos?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “Muchos de nuestros alojamientos disponen de garaje privado o parking en urbanización cerrada. Indícalo en tu búsqueda y te mostraremos las opciones disponibles.”}
},
{
“@type”: “Question”,
“name”: “¿Cuál es la política de cancelación?”,
“acceptedAnswer”: {“@type”: “Answer”, “text”: “La política de cancelación varía según la propiedad. Generalmente, las cancelaciones con más de 30 días de antelación tienen reembolso completo. Consulta las condiciones específicas de cada alojamiento antes de confirmar.”}
}
]
}
]
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, “Helvetica Neue”, Arial, sans-serif;
background: #fff;
color: #222;
line-height: 1.6;
overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }

/* ===== VARIABLES ===== */
:root {
–coral: #FF385C;
–coral-dark: #e0274e;
–coral-light: #FF5A5F;
–text-dark: #222222;
–text-mid: #484848;
–text-light: #717171;
–bg-light: #F7F7F7;
–border: #EBEBEB;
–shadow-sm: 0 1px 2px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05);
–shadow-md: 0 6px 20px rgba(0,0,0,0.13);
–shadow-lg: 0 14px 44px rgba(0,0,0,0.17);
–radius: 12px;
–radius-lg: 20px;
–max-w: 1440px;
–pad-x: clamp(20px, 5vw, 80px);
}

/* ===== NAVBAR ===== */
.vh-nav {
position: fixed;
top: 0; left: 0; right: 0;
z-index: 1000;
background: transparent;
transition: background 0.3s ease, box-shadow 0.3s ease;
}
.vh-nav.scrolled {
background: #fff;
box-shadow: 0 1px 0 var(–border);
}
.vh-nav-inner {
max-width: var(–max-w);
margin: 0 auto;
padding: 0 var(–pad-x);
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}
.vh-logo {
font-size: 22px;
font-weight: 700;
color: #fff;
transition: color 0.3s;
flex-shrink: 0;
}
.vh-nav.scrolled .vh-logo { color: var(–coral); }

.vh-search-bar {
display: flex;
align-items: center;
gap: 0;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.3);
border-radius: 40px;
padding: 6px 6px 6px 20px;
transition: all 0.3s;
flex: 1;
max-width: 480px;
}
.vh-nav.scrolled .vh-search-bar {
background: #fff;
border-color: var(–border);
box-shadow: var(–shadow-sm);
}
.vh-search-bar input {
border: none;
outline: none;
background: transparent;
font-size: 14px;
color: #fff;
flex: 1;
min-width: 0;
}
.vh-nav.scrolled .vh-search-bar input { color: var(–text-dark); }
.vh-search-bar input::placeholder { color: rgba(255,255,255,0.7); }
.vh-nav.scrolled .vh-search-bar input::placeholder { color: var(–text-light); }
.vh-search-btn {
background: var(–coral);
border: none;
border-radius: 50%;
width: 36px; height: 36px;
display: flex; align-items: center; justify-content: center;
cursor: pointer;
flex-shrink: 0;
transition: transform 0.2s;
}
.vh-search-btn:hover { transform: scale(1.05); }
.vh-search-btn svg { width: 16px; height: 16px; fill: #fff; }

.vh-nav-links {
display: flex;
align-items: center;
gap: 8px;
list-style: none;
}
.vh-nav-links a {
font-size: 14px;
font-weight: 500;
color: rgba(255,255,255,0.9);
padding: 8px 14px;
border-radius: 22px;
transition: background 0.2s, color 0.2s;
white-space: nowrap;
}
.vh-nav.scrolled .vh-nav-links a { color: var(–text-mid); }
.vh-nav-links a:hover {
background: rgba(255,255,255,0.15);
}
.vh-nav.scrolled .vh-nav-links a:hover { background: var(–bg-light); }
.vh-nav-cta {
background: var(–coral) !important;
color: #fff !important;
border-radius: 8px !important;
padding: 10px 18px !important;
font-weight: 600 !important;
}
.vh-nav-cta:hover { background: var(–coral-dark) !important; }

.vh-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; }
.vh-hamburger span { display: block; width: 22px; height: 2px; background: #fff; border-radius: 2px; transition: background 0.3s; }
.vh-nav.scrolled .vh-hamburger span { background: var(–text-dark); }

/* ===== HERO ===== */
.vh-hero {
position: relative;
height: 100vh;
min-height: 600px;
max-height: 900px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.vh-hero-bg {
position: absolute;
inset: 0;
background-image: url(“https://vegahomevacacional.es/wp-content/uploads/2026/04/index.jpg”),
url(“https://vegahomevacacional.es/wp-content/uploads/2026/02/atardecer.png”);
background-size: cover;
background-position: center;
transform: scale(1.05);
transition: transform 8s ease-out;
}
.vh-hero-bg.loaded { transform: scale(1); }
.vh-hero-overlay {
position: absolute;
inset: 0;
background: linear-gradient(180deg,
rgba(0,0,0,0.55) 0%,
rgba(0,0,0,0.35) 50%,
rgba(0,0,0,0.65) 100%);
}
.vh-hero-content {
position: relative;
z-index: 2;
text-align: center;
color: #fff;
padding: 0 var(–pad-x);
max-width: 860px;
}
.vh-hero-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background: rgba(255,255,255,0.15);
backdrop-filter: blur(10px);
border: 1px solid rgba(255,255,255,0.3);
color: #fff;
font-size: 13px;
font-weight: 500;
padding: 6px 16px;
border-radius: 40px;
margin-bottom: 24px;
letter-spacing: 0.3px;
}
.vh-hero-badge::before { content: “✦”; color: #FFD700; }
.vh-hero h1 {
font-size: clamp(36px, 6vw, 72px);
font-weight: 800;
line-height: 1.1;
letter-spacing: -1px;
margin-bottom: 20px;
text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.vh-hero h1 em {
font-style: normal;
color: #FFD700;
}
.vh-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,0.9);
max-width: 560px;
margin: 0 auto 36px;
font-weight: 400;
}
.vh-hero-ctas {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
}
.vh-btn-primary {
background: var(–coral);
color: #fff;
font-size: 16px;
font-weight: 600;
padding: 16px 32px;
border-radius: 10px;
border: none;
cursor: pointer;
transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
display: inline-flex;
align-items: center;
gap: 8px;
box-shadow: 0 4px 20px rgba(255,56,92,0.45);
}
.vh-btn-primary:hover { background: var(–coral-dark); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(255,56,92,0.5); }
.vh-btn-ghost {
background: rgba(255,255,255,0.15);
backdrop-filter: blur(10px);
color: #fff;
font-size: 16px;
font-weight: 600;
padding: 16px 32px;
border-radius: 10px;
border: 1.5px solid rgba(255,255,255,0.5);
cursor: pointer;
transition: background 0.2s, transform 0.2s;
display: inline-flex;
align-items: center;
gap: 8px;
}
.vh-btn-ghost:hover { background: rgba(255,255,255,0.25); transform: translateY(-2px); }

.vh-hero-scroll {
position: absolute;
bottom: 32px;
left: 50%;
transform: translateX(-50%);
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
color: rgba(255,255,255,0.7);
font-size: 12px;
letter-spacing: 1px;
text-transform: uppercase;
animation: bounce 2s infinite;
}
.vh-hero-scroll svg { width: 20px; height: 20px; fill: rgba(255,255,255,0.7); }
@keyframes bounce {
0%, 100% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(8px); }
}

/* ===== TRUST BAR ===== */
.vh-trust {
background: #fff;
border-bottom: 1px solid var(–border);
padding: 20px var(–pad-x);
}
.vh-trust-inner {
max-width: var(–max-w);
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
gap: clamp(24px, 5vw, 80px);
flex-wrap: wrap;
}
.vh-trust-item {
display: flex;
align-items: center;
gap: 10px;
white-space: nowrap;
}
.vh-trust-icon {
width: 40px; height: 40px;
background: #FFF0F2;
border-radius: 10px;
display: flex; align-items: center; justify-content: center;
font-size: 20px;
}
.vh-trust-label { font-size: 13px; color: var(–text-light); line-height: 1.3; }
.vh-trust-label strong { display: block; color: var(–text-dark); font-size: 15px; font-weight: 700; }

/* ===== SECTION WRAPPER ===== */
.vh-section {
padding: clamp(56px, 8vw, 96px) var(–pad-x);
max-width: var(–max-w);
margin: 0 auto;
}
.vh-section-header {
margin-bottom: clamp(32px, 5vw, 56px);
}
.vh-section-label {
font-size: 13px;
font-weight: 600;
color: var(–coral);
letter-spacing: 1.5px;
text-transform: uppercase;
margin-bottom: 10px;
}
.vh-section-title {
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
color: var(–text-dark);
line-height: 1.2;
letter-spacing: -0.5px;
}
.vh-section-desc {
font-size: 17px;
color: var(–text-light);
margin-top: 14px;
max-width: 620px;
line-height: 1.7;
}

/* ===== DESTINATION CARDS ===== */
.vh-destinations-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.vh-dest-card {
border-radius: var(–radius-lg);
overflow: hidden;
position: relative;
cursor: pointer;
aspect-ratio: 3/4;
box-shadow: var(–shadow-sm);
transition: transform 0.35s cubic-bezier(0.25,0.46,0.45,0.94), box-shadow 0.35s;
}
.vh-dest-card:nth-child(1) { grid-row: span 2; aspect-ratio: auto; }
.vh-dest-card:hover { transform: translateY(-6px); box-shadow: var(–shadow-lg); }

.vh-dest-img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.vh-dest-card:hover .vh-dest-img { transform: scale(1.06); }

.vh-dest-overlay {
position: absolute;
inset: 0;
background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.75) 100%);
transition: background 0.35s;
}
.vh-dest-card:hover .vh-dest-overlay {
background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.85) 100%);
}

.vh-dest-content {
position: absolute;
bottom: 0; left: 0; right: 0;
padding: 28px;
color: #fff;
}
.vh-dest-tag {
display: inline-block;
background: var(–coral);
color: #fff;
font-size: 11px;
font-weight: 700;
padding: 4px 10px;
border-radius: 20px;
letter-spacing: 0.5px;
text-transform: uppercase;
margin-bottom: 10px;
}
.vh-dest-name {
font-size: clamp(22px, 3vw, 30px);
font-weight: 800;
line-height: 1.1;
margin-bottom: 8px;
}
.vh-dest-desc {
font-size: 14px;
color: rgba(255,255,255,0.85);
line-height: 1.5;
margin-bottom: 16px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.vh-dest-footer {
display: flex;
align-items: center;
justify-content: space-between;
}
.vh-dest-count {
font-size: 13px;
color: rgba(255,255,255,0.8);
display: flex;
align-items: center;
gap: 5px;
}
.vh-dest-count::before { content: “🏠”; font-size: 14px; }
.vh-dest-arrow {
width: 36px; height: 36px;
background: rgba(255,255,255,0.2);
backdrop-filter: blur(10px);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 16px;
transition: background 0.2s, transform 0.2s;
}
.vh-dest-card:hover .vh-dest-arrow {
background: var(–coral);
transform: translateX(4px);
}

/* Row 2 del grid (tarjetas más pequeñas) */
.vh-destinations-grid .vh-dest-card:not(:first-child) {
aspect-ratio: 4/3;
}

/* ===== SERVICES STRIP ===== */
.vh-services-strip {
background: var(–bg-light);
border-top: 1px solid var(–border);
border-bottom: 1px solid var(–border);
}
.vh-services-inner {
max-width: var(–max-w);
margin: 0 auto;
padding: clamp(48px, 6vw, 80px) var(–pad-x);
}
.vh-services-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px;
margin-top: 48px;
}
.vh-service-card {
background: #fff;
border-radius: var(–radius);
padding: 32px 24px;
text-align: center;
border: 1px solid var(–border);
transition: box-shadow 0.3s, transform 0.3s;
position: relative;
overflow: hidden;
}
.vh-service-card::before {
content: “”;
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: var(–coral);
transform: scaleX(0);
transition: transform 0.3s;
transform-origin: left;
}
.vh-service-card:hover { box-shadow: var(–shadow-md); transform: translateY(-4px); }
.vh-service-card:hover::before { transform: scaleX(1); }
.vh-service-icon {
font-size: 40px;
margin-bottom: 16px;
}
.vh-service-card h3 {
font-size: 17px;
font-weight: 700;
color: var(–text-dark);
margin-bottom: 10px;
}
.vh-service-card p {
font-size: 14px;
color: var(–text-light);
line-height: 1.6;
}
.vh-service-link {
display: inline-block;
margin-top: 16px;
font-size: 14px;
font-weight: 600;
color: var(–coral);
transition: gap 0.2s;
}
.vh-service-link::after { content: ” →”; }
.vh-service-link:hover { opacity: 0.8; }

/* ===== HOW IT WORKS ===== */
.vh-how-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 48px;
position: relative;
}
.vh-how-grid::before {
content: “”;
position: absolute;
top: 36px;
left: calc(16.67% + 24px);
right: calc(16.67% + 24px);
height: 2px;
background: var(–border);
z-index: 0;
}
.vh-how-step {
text-align: center;
position: relative;
z-index: 1;
}
.vh-how-num {
width: 72px; height: 72px;
background: var(–coral);
color: #fff;
font-size: 28px;
font-weight: 800;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
margin: 0 auto 20px;
box-shadow: 0 4px 20px rgba(255,56,92,0.35);
}
.vh-how-step h3 {
font-size: 18px;
font-weight: 700;
margin-bottom: 10px;
color: var(–text-dark);
}
.vh-how-step p {
font-size: 15px;
color: var(–text-light);
line-height: 1.65;
}

/* ===== STATS ===== */
.vh-stats {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
padding: clamp(56px, 7vw, 88px) var(–pad-x);
}
.vh-stats-inner {
max-width: var(–max-w);
margin: 0 auto;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px;
text-align: center;
}
.vh-stat-num {
font-size: clamp(36px, 5vw, 60px);
font-weight: 900;
color: #fff;
letter-spacing: -1px;
line-height: 1;
margin-bottom: 8px;
}
.vh-stat-num span { color: var(–coral); }
.vh-stat-label {
font-size: 15px;
color: rgba(255,255,255,0.65);
font-weight: 400;
}

/* ===== TESTIMONIALS ===== */
.vh-testimonials {
background: #fff;
}
.vh-test-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-top: 48px;
}
.vh-test-card {
border: 1px solid var(–border);
border-radius: var(–radius-lg);
padding: 28px;
transition: box-shadow 0.3s;
position: relative;
}
.vh-test-card::before {
content: open-quote;
font-size: 80px;
line-height: 0;
color: var(–coral);
opacity: 0.15;
position: absolute;
top: 24px; left: 20px;
font-family: Georgia, serif;
}
.vh-test-card:hover { box-shadow: var(–shadow-md); }
.vh-test-stars { color: #FFB400; font-size: 16px; margin-bottom: 14px; }
.vh-test-text {
font-size: 15px;
color: var(–text-mid);
line-height: 1.7;
margin-bottom: 20px;
font-style: italic;
}
.vh-test-author {
display: flex;
align-items: center;
gap: 12px;
}
.vh-test-avatar {
width: 46px; height: 46px;
border-radius: 50%;
background: linear-gradient(135deg, var(–coral), #FF8C00);
display: flex; align-items: center; justify-content: center;
font-size: 18px;
color: #fff;
font-weight: 700;
flex-shrink: 0;
}
.vh-test-name { font-weight: 700; font-size: 15px; color: var(–text-dark); }
.vh-test-meta { font-size: 12px; color: var(–text-light); }

/* ===== FAQ ACCORDION ===== */
.vh-faq-wrap {
max-width: 860px;
margin: 0 auto;
}
.vh-faq-item {
border-bottom: 1px solid var(–border);
overflow: hidden;
}
.vh-faq-item:first-child { border-top: 1px solid var(–border); }
.vh-faq-q {
width: 100%;
background: none;
border: none;
padding: 22px 0;
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
text-align: left;
font-size: 16px;
font-weight: 600;
color: var(–text-dark);
gap: 16px;
transition: color 0.2s;
}
.vh-faq-q:hover { color: var(–coral); }
.vh-faq-icon {
width: 28px; height: 28px;
border-radius: 50%;
border: 1.5px solid var(–border);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
font-size: 18px;
color: var(–text-mid);
transition: all 0.3s;
line-height: 1;
}
.vh-faq-item.active .vh-faq-icon {
background: var(–coral);
border-color: var(–coral);
color: #fff;
transform: rotate(45deg);
}
.vh-faq-a {
max-height: 0;
overflow: hidden;
transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1), padding 0.3s;
}
.vh-faq-a-inner {
font-size: 15px;
color: var(–text-mid);
line-height: 1.75;
padding-bottom: 22px;
}

/* ===== PRICING TABLE ===== */
.vh-pricing {
background: var(–bg-light);
border-top: 1px solid var(–border);
border-bottom: 1px solid var(–border);
}
.vh-price-table-wrap {
overflow-x: auto;
border-radius: var(–radius);
box-shadow: var(–shadow-sm);
margin-top: 48px;
}
.vh-price-table {
width: 100%;
border-collapse: collapse;
background: #fff;
min-width: 680px;
}
.vh-price-table th {
background: var(–text-dark);
color: #fff;
padding: 16px 20px;
font-size: 13px;
font-weight: 600;
text-align: left;
letter-spacing: 0.3px;
}
.vh-price-table th:first-child { border-radius: 0; }
.vh-price-table td {
padding: 15px 20px;
font-size: 14px;
color: var(–text-mid);
border-bottom: 1px solid var(–border);
}
.vh-price-table tr:last-child td { border-bottom: none; }
.vh-price-table tr:nth-child(even) td { background: #fafafa; }
.vh-price-table tr:hover td { background: #FFF0F2; }
.vh-price-dest {
font-weight: 700;
color: var(–text-dark);
display: flex; align-items: center; gap: 8px;
}
.vh-price-peak { color: var(–coral); font-weight: 700; }
.vh-price-high { color: #E67E22; font-weight: 600; }
.vh-price-mid { color: #27AE60; font-weight: 600; }
.vh-price-low { color: var(–text-light); }
.vh-price-badge {
display: inline-block;
background: var(–coral);
color: #fff;
font-size: 10px;
font-weight: 700;
padding: 2px 7px;
border-radius: 4px;
margin-left: 6px;
vertical-align: middle;
}

/* ===== CTA GRADIENT ===== */
.vh-cta-section {
background: linear-gradient(135deg, #FF385C 0%, #E91E63 40%, #C2185B 100%);
padding: clamp(64px, 9vw, 112px) var(–pad-x);
text-align: center;
position: relative;
overflow: hidden;
}
.vh-cta-section::before {
content: “”;
position: absolute;
top: -80px; right: -80px;
width: 300px; height: 300px;
background: rgba(255,255,255,0.06);
border-radius: 50%;
}
.vh-cta-section::after {
content: “”;
position: absolute;
bottom: -100px; left: -60px;
width: 350px; height: 350px;
background: rgba(255,255,255,0.04);
border-radius: 50%;
}
.vh-cta-inner {
position: relative;
z-index: 1;
max-width: 680px;
margin: 0 auto;
}
.vh-cta-eyebrow {
display: inline-block;
background: rgba(255,255,255,0.15);
color: #fff;
font-size: 12px;
font-weight: 700;
letter-spacing: 2px;
text-transform: uppercase;
padding: 6px 16px;
border-radius: 40px;
margin-bottom: 24px;
}
.vh-cta-section h2 {
font-size: clamp(28px, 4.5vw, 52px);
font-weight: 900;
color: #fff;
line-height: 1.15;
margin-bottom: 18px;
letter-spacing: -0.5px;
}
.vh-cta-section p {
font-size: 18px;
color: rgba(255,255,255,0.88);
margin-bottom: 36px;
line-height: 1.6;
}
.vh-cta-btns {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
}
.vh-btn-wa {
background: #25D366;
color: #fff;
font-size: 16px;
font-weight: 700;
padding: 17px 34px;
border-radius: 10px;
display: inline-flex;
align-items: center;
gap: 10px;
transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 20px rgba(37,211,102,0.4);
}
.vh-btn-wa:hover { background: #1da851; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(37,211,102,0.5); }
.vh-btn-wa-icon { width: 22px; height: 22px; }
.vh-btn-white {
background: #fff;
color: var(–coral);
font-size: 16px;
font-weight: 700;
padding: 17px 34px;
border-radius: 10px;
display: inline-flex;
align-items: center;
gap: 10px;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}
.vh-btn-white:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,0.15); }

/* ===== FLOATING WA ===== */
.vh-wa-float {
position: fixed;
bottom: 28px;
right: 28px;
z-index: 999;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 10px;
}
.vh-wa-bubble {
background: #fff;
border-radius: 12px;
padding: 12px 16px;
font-size: 14px;
font-weight: 600;
color: var(–text-dark);
box-shadow: var(–shadow-md);
white-space: nowrap;
opacity: 0;
transform: translateX(10px);
transition: opacity 0.3s, transform 0.3s;
}
.vh-wa-float:hover .vh-wa-bubble {
opacity: 1;
transform: translateX(0);
}
.vh-wa-btn {
width: 60px; height: 60px;
background: #25D366;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 6px 24px rgba(37,211,102,0.5);
transition: transform 0.2s, box-shadow 0.2s;
animation: pulse-wa 3s infinite;
}
.vh-wa-btn:hover {
transform: scale(1.08);
box-shadow: 0 10px 32px rgba(37,211,102,0.6);
}
.vh-wa-btn svg { width: 30px; height: 30px; fill: #fff; }
@keyframes pulse-wa {
0%, 100% { box-shadow: 0 6px 24px rgba(37,211,102,0.5), 0 0 0 0 rgba(37,211,102,0.4); }
50% { box-shadow: 0 6px 24px rgba(37,211,102,0.5), 0 0 0 12px rgba(37,211,102,0); }
}

/* ===== FOOTER ===== */
.vh-footer {
background: var(–text-dark);
color: rgba(255,255,255,0.7);
padding: clamp(48px, 6vw, 80px) var(–pad-x) 32px;
}
.vh-footer-inner {
max-width: var(–max-w);
margin: 0 auto;
}
.vh-footer-top {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 48px;
padding-bottom: 48px;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.vh-footer-brand h3 {
font-size: 20px;
font-weight: 800;
color: #fff;
margin-bottom: 12px;
}
.vh-footer-brand p {
font-size: 14px;
line-height: 1.7;
max-width: 280px;
margin-bottom: 20px;
}
.vh-footer-social {
display: flex;
gap: 10px;
}
.vh-social-icon {
width: 38px; height: 38px;
background: rgba(255,255,255,0.08);
border-radius: 8px;
display: flex; align-items: center; justify-content: center;
font-size: 18px;
transition: background 0.2s;
cursor: pointer;
}
.vh-social-icon:hover { background: var(–coral); }
.vh-footer-col h4 {
font-size: 14px;
font-weight: 700;
color: #fff;
letter-spacing: 0.5px;
margin-bottom: 18px;
text-transform: uppercase;
}
.vh-footer-col ul {
list-style: none;
display: flex;
flex-direction: column;
gap: 10px;
}
.vh-footer-col a {
font-size: 14px;
color: rgba(255,255,255,0.65);
transition: color 0.2s;
}
.vh-footer-col a:hover { color: #fff; }
.vh-footer-bottom {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 28px;
font-size: 13px;
gap: 16px;
flex-wrap: wrap;
}
.vh-footer-bottom a { color: rgba(255,255,255,0.5); transition: color 0.2s; }
.vh-footer-bottom a:hover { color: #fff; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1200px) {
.vh-destinations-grid {
grid-template-columns: repeat(2, 1fr);
}
.vh-dest-card:first-child { grid-row: span 1; aspect-ratio: 4/3; }
.vh-services-grid { grid-template-columns: repeat(2, 1fr); }
.vh-stats-inner { grid-template-columns: repeat(2, 1fr); }
.vh-footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
}

@media (max-width: 768px) {
.vh-nav-links { display: none; }
.vh-search-bar { display: none; }
.vh-hamburger { display: flex; }
.vh-logo { font-size: 18px; }

.vh-destinations-grid {
grid-template-columns: 1fr;
gap: 16px;
}
.vh-dest-card { aspect-ratio: 16/9 !important; }

.vh-services-grid { grid-template-columns: 1fr; gap: 16px; }
.vh-how-grid { grid-template-columns: 1fr; gap: 32px; }
.vh-how-grid::before { display: none; }

.vh-stats-inner { grid-template-columns: repeat(2, 1fr); gap: 24px; }
.vh-test-grid { grid-template-columns: 1fr; gap: 16px; }

.vh-footer-top { grid-template-columns: 1fr; gap: 32px; }
.vh-footer-bottom { flex-direction: column; text-align: center; }

.vh-wa-float { bottom: 20px; right: 20px; }
.vh-wa-btn { width: 52px; height: 52px; }

.vh-cta-btns { flex-direction: column; align-items: center; }
.vh-btn-wa, .vh-btn-white { width: 100%; max-width: 320px; justify-content: center; }
}

@media (max-width: 480px) {
.vh-stats-inner { grid-template-columns: 1fr; }
}

/* ===== MOBILE MENU ===== */
.vh-mobile-menu {
position: fixed;
inset: 0;
background: #fff;
z-index: 2000;
transform: translateX(100%);
transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
padding: 24px var(–pad-x);
display: flex;
flex-direction: column;
}
.vh-mobile-menu.open { transform: translateX(0); }
.vh-mobile-menu-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 32px;
}
.vh-mobile-menu-logo {
font-size: 20px;
font-weight: 800;
color: var(–coral);
}
.vh-mobile-close {
font-size: 24px;
cursor: pointer;
color: var(–text-dark);
background: none;
border: none;
padding: 4px;
line-height: 1;
}
.vh-mobile-nav {
list-style: none;
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
}
.vh-mobile-nav a {
display: block;
font-size: 18px;
font-weight: 600;
color: var(–text-dark);
padding: 14px 0;
border-bottom: 1px solid var(–border);
transition: color 0.2s;
}
.vh-mobile-nav a:hover { color: var(–coral); }
.vh-mobile-wa {
margin-top: 24px;
}

/* ===== ANIMATIONS ===== */
.vh-fade-up {
opacity: 0;
transform: translateY(24px);
transition: opacity 0.6s cubic-bezier(0.4,0,0.2,1), transform 0.6s cubic-bezier(0.4,0,0.2,1);
}
.vh-fade-up.visible {
opacity: 1;
transform: translateY(0);
}
.vh-fade-up:nth-child(2) { transition-delay: 0.1s; }
.vh-fade-up:nth-child(3) { transition-delay: 0.2s; }
.vh-fade-up:nth-child(4) { transition-delay: 0.3s; }
.vh-fade-up:nth-child(5) { transition-delay: 0.4s; }

⭐ +247 valoraciones · 4.9/5 en Google

Alquiler Vacacional en Cádiz
Vive el Atlántico en 2026

Las mejores casas y apartamentos en Costa Ballena, Rota y Sanlúcar de Barrameda.
Reserva directa, sin comisiones.


Elige tu rincón del
Atlántico

Cuatro destinos únicos, una sola empresa de confianza. Descubre las mejores propiedades
en cada pueblo de la costa gaditana.

Todo lo que necesitas
para tu alquiler vacacional

Desde la búsqueda del alojamiento perfecto hasta el mantenimiento integral de tu propiedad.
Somos tu partner de confianza en el sur de Cádiz.

🔍

Búsqueda y reserva

Encuentra tu alojamiento ideal con filtros por zona, precio, capacidad y servicios. Reserva directa y sin comisiones de intermediarios.

Buscar alojamiento

🏡

Gestión integral

Gestión completa de tu propiedad: reservas, check-in, check-out, limpieza y atención al huésped. Rentabiliza sin preocupaciones.

Gestión para propietarios

🔧

Mantenimiento

Equipo propio de fontanería, pintura, climatización y electricidad. Respuesta en menos de 24h para garantizar el confort de tus huéspedes.

Ver servicios de mantenimiento

Limpieza profesional

Servicio de limpieza especializado en viviendas vacacionales con protocolo de calidad certificado. Lino de hotel incluido bajo petición.

Servicio de limpieza

Reserva en 3 pasos

Sin complicaciones, sin sorpresas. Tu alquiler vacacional en el sur de Cádiz a un mensaje de distancia.

1

Elige tu destino

Explora nuestras propiedades en Costa Ballena, Rota, Sanlúcar y Chipiona. Filtra por fechas, precio y características para encontrar tu alojamiento ideal.

2

Consulta disponibilidad

Contacta directamente por WhatsApp o formulario. Te respondemos en menos de 2 horas con disponibilidad real y precio final sin sorpresas.

3

Confirma y disfruta

Pago seguro y confirmación inmediata. El día de llegada te facilitamos el acceso y estamos disponibles las 24h para cualquier necesidad.

+60
Propiedades en el sur de Cádiz
4.9
Valoración media en Google
+1.200
Familias felices en 2025
10años
De experiencia en alquiler vacacional

Tabla orientativa de precios
por noche en el sur de Cádiz

Precios medios por noche (2 habitaciones, hasta 4-6 personas). Varían según propiedades específicas, comodidades y disponibilidad. Consulta sin compromiso.

Destino 🔴 Julio–Agosto 🟠 Semana Santa 🟢 Primavera/Otoño 🔵 Invierno
🏖️ Costa Ballena TOP 120–250€/noche 90–160€/noche 65–110€/noche 50–80€/noche
⚓ Rota 100–200€/noche 75–130€/noche 55–90€/noche 40–65€/noche
🏺 Sanlúcar de Barrameda 90–180€/noche 70–120€/noche 50–85€/noche 35–60€/noche
🔦 Chipiona 85–170€/noche 65–110€/noche 45–80€/noche 30–55€/noche

* Precios orientativos para temporada 2026. Estancia mínima: 3-7 noches en temporada alta. Consulta precios exactos por WhatsApp o en el listado de alojamientos.

4.9★ de media
en +247 valoraciones

★★★★★

“Casa preciosa en Costa Ballena a 5 minutos de la playa. Todo perfectamente limpio y equipado. La atención de Vega Home fue impecable desde el primer mensaje. Repetiremos el próximo verano sin duda.”

María R.
Sevilla · Costa Ballena · Julio 2025
★★★★★

“Alquilamos en Rota con toda la familia (8 personas) y fue una experiencia increíble. El apartamento era enorme, con terraza y vistas al mar. Muy recomendables, precio justo y sin sorpresas.”

Javier P.
Madrid · Rota · Agosto 2025
★★★★★

“Sanlúcar nos enamoró. La casa que reservamos a través de Vega Home era exactamente como en las fotos. Langostinos de Sanlúcar a 200 metros. Experiencia de 10, volveremos en Semana Santa.”

Ana G.
Málaga · Sanlúcar · Semana Santa 2025

Resolvemos tus dudas

Todo lo que necesitas saber sobre el alquiler vacacional en el sur de Cádiz.

Costa Ballena lidera como destino premium: urbanización privada con seguridad, playas de bandera azul y campo de golf. Ideal para familias y parejas que buscan exclusividad.
Rota es perfecta si quieres playa urbana con restaurantes y animación nocturna. Sanlúcar de Barrameda combina historia, gastronomía única (langostinos y manzanilla) y la marisma de Doñana a un paso. Chipiona destaca por su tranquilidad y sus playas de aguas calmadas, perfectas para niños pequeños.

Sí. En Vega Home Vacacional todas las reservas son directas con nosotros, sin intermediarios. Esto significa que el precio que ves es el precio final: sin comisiones del 15-20% que aplican plataformas como Airbnb o Booking.com. Además, recibes atención personalizada antes, durante y después de tu estancia.

Para julio y agosto recomendamos reservar con al menos 3-4 meses de antelación, ya que las propiedades en Costa Ballena y Rota se agotan rápidamente. Semana Santa también tiene alta demanda desde enero. Para primavera y otoño tienes mayor flexibilidad. ¡Contáctanos por WhatsApp ahora para asegurar tu semana preferida!

La mayoría de nuestros alojamientos disponen de piscina privada o comunitaria, WiFi de alta velocidad y aire acondicionado de alta eficiencia. Cada ficha de propiedad especifica claramente todos los servicios disponibles. Puedes filtrar por estos servicios al consultar disponibilidad o preguntarnos por WhatsApp.

Sí. Ofrecemos un servicio de gestión integral para propietarios que incluye: publicación en plataformas, gestión de reservas, check-in y check-out, limpieza profesional, mantenimiento preventivo y correctivo, y rendición de cuentas mensual. Maximizamos la rentabilidad de tu inversión mientras tú despreocupas. Más información aquí.

La política de cancelación varía según la propiedad. Como norma general: cancelación gratuita hasta 30 días antes del check-in con devolución del 100%. Entre 30 y 14 días, devolución del 50%. Con menos de 14 días no se reembolsa la señal. Algunas propiedades premium tienen condiciones específicas indicadas en su ficha.

Costa Ballena está literalmente en primera línea de playa. La urbanización limita directamente con la playa de Costa Ballena, reconocida con bandera azul. Desde la mayoría de nuestras propiedades se llega a la arena en menos de 5 minutos a pie. Algunas casas tienen acceso directo desde su jardín.

Algunas de nuestras propiedades sí admiten mascotas, especialmente casas con jardín privado. Cada ficha indica claramente si se aceptan animales. Al reservar con mascotas puede aplicarse un suplemento de limpieza de 30-60€. Consulta disponibilidad de propiedades pet-friendly por WhatsApp y te preparamos una selección personalizada.

☀️ Reserva para verano 2026

Tu alquiler vacacional
en Cádiz está esperando

Reserva directa, precio garantizado y atención personalizada. Las mejores propiedades en Costa Ballena, Rota y Sanlúcar se agotan. ¡No esperes más!

(function() {
‘use strict’;

// Navbar scroll effect
const nav = document.getElementById(‘vh-nav’);
const onScroll = () => {
nav.classList.toggle(‘scrolled’, window.scrollY > 60);
};
window.addEventListener(‘scroll’, onScroll, { passive: true });

// Hero bg animation
const heroBg = document.getElementById(‘vh-hero-bg’);
if (heroBg) {
requestAnimationFrame(() => heroBg.classList.add(‘loaded’));
}

// Mobile menu
const hamburger = document.getElementById(‘vh-hamburger’);
const mobileMenu = document.getElementById(‘vh-mobile-menu’);
const mobileClose = document.getElementById(‘vh-mobile-close’);

const openMenu = () => {
mobileMenu.classList.add(‘open’);
hamburger.setAttribute(‘aria-expanded’, ‘true’);
document.body.style.overflow = ‘hidden’;
};
const closeMenu = () => {
mobileMenu.classList.remove(‘open’);
hamburger.setAttribute(‘aria-expanded’, ‘false’);
document.body.style.overflow = ”;
};

if (hamburger) hamburger.addEventListener(‘click’, openMenu);
if (mobileClose) mobileClose.addEventListener(‘click’, closeMenu);
if (mobileMenu) {
mobileMenu.addEventListener(‘click’, (e) => {
if (e.target === mobileMenu) closeMenu();
});
}

// FAQ Accordion
const faqItems = document.querySelectorAll(‘.vh-faq-item’);
faqItems.forEach(item => {
const btn = item.querySelector(‘.vh-faq-q’);
const answer = item.querySelector(‘.vh-faq-a’);
const inner = answer ? answer.querySelector(‘.vh-faq-a-inner’) : null;

if (!btn || !answer || !inner) return;

btn.addEventListener(‘click’, () => {
const isOpen = item.classList.contains(‘active’);

// Close all
faqItems.forEach(i => {
i.classList.remove(‘active’);
const a = i.querySelector(‘.vh-faq-a’);
const b = i.querySelector(‘.vh-faq-q’);
if (a) a.style.maxHeight = ‘0’;
if (b) b.setAttribute(‘aria-expanded’, ‘false’);
});

// Open clicked if was closed
if (!isOpen) {
item.classList.add(‘active’);
answer.style.maxHeight = inner.scrollHeight + ‘px’;
btn.setAttribute(‘aria-expanded’, ‘true’);
}
});
});

// Intersection Observer for animations
const fadeEls = document.querySelectorAll(‘.vh-fade-up’);
if (‘IntersectionObserver’ in window) {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add(‘visible’);
observer.unobserve(entry.target);
}
});
}, { threshold: 0.1, rootMargin: ‘0px 0px -50px 0px’ });
fadeEls.forEach(el => observer.observe(el));
} else {
fadeEls.forEach(el => el.classList.add(‘visible’));
}

// Smooth scroll for anchor links
document.querySelectorAll(‘a[href^=”#”]’).forEach(a => {
a.addEventListener(‘click’, function(e) {
const target = document.querySelector(this.getAttribute(‘href’));
if (target) {
e.preventDefault();
target.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
}
});
});

// Lazy load images with native support check
if (‘loading’ in HTMLImageElement.prototype) {
// Native lazy loading is supported, do nothing extra
} else {
// Fallback lazy loading
const imgs = document.querySelectorAll(‘img[loading=”lazy”]’);
const imgObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
if (img.dataset.src) {
img.src = img.dataset.src;
imgObserver.unobserve(img);
}
}
});
});
imgs.forEach(img => imgObserver.observe(img));
}

// Search bar functionality (redirect to alquileres with search param)
const searchInput = document.querySelector(‘.vh-search-bar input’);
const searchBtn = document.querySelector(‘.vh-search-btn’);
const doSearch = () => {
const q = searchInput ? searchInput.value.trim() : ”;
if (q) window.location.href = ‘/alquileres/?buscar=’ + encodeURIComponent(q);
else window.location.href = ‘/alquileres/’;
};
if (searchBtn) searchBtn.addEventListener(‘click’, doSearch);
if (searchInput) {
searchInput.addEventListener(‘keydown’, (e) => {
if (e.key === ‘Enter’) doSearch();
});
}

})();

Buscar

abril 2026

  • L
  • M
  • X
  • J
  • V
  • S
  • D
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

mayo 2026

  • L
  • M
  • X
  • J
  • V
  • S
  • D
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
0 Adultos
0 Niños
Mascotas
Tamaño
Precio
Comodidades
Facilidades

Comparar listados

Comparar

Compare experiences

Comparar