/* ==========================================================================
   Vega Sol Residencial — estilos de la web
   Colores: #0E556C (azul) · #A2F1F8 (turquesa) · #0A3F50 (azul profundo)
   ========================================================================== */

:root {
	--vs-azul: var(--wp--preset--color--accent-1, #0e556c);
	--vs-turquesa: var(--wp--preset--color--accent-2, #a2f1f8);
	--vs-profundo: var(--wp--preset--color--accent-3, #0a3f50);
	--vs-gris: var(--wp--preset--color--accent-4, #56707a);
	--vs-suave: var(--wp--preset--color--accent-5, #eef6f7);
	--vs-linea: var(--wp--preset--color--accent-6, #d3e5e9);
	--vs-radio: 18px;
	--vs-radio-sm: 12px;
	--vs-sombra: 0 10px 30px rgba(10, 63, 80, 0.08);
	--vs-header-h: 76px;
}

html {
	scroll-behavior: smooth;
}

[id] {
	scroll-margin-top: calc(var(--vs-header-h) + 12px);
}

/* Sin huecos blancos entre cabecera, secciones y pie */
.wp-site-blocks > .vs-main,
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

.vs-main > * {
	margin-block: 0 !important;
}

/* ---------- Cabecera fija ---------- */
header.wp-block-template-part:has(.vs-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}

.admin-bar header.wp-block-template-part:has(.vs-header) {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.vs-header {
	border-bottom: 1px solid var(--vs-linea);
	box-shadow: 0 2px 18px rgba(10, 63, 80, 0.06);
}

.vs-header__in {
	gap: 1.5rem;
}

.vs-header__logo {
	margin: 0;
	flex-shrink: 0;
}

.vs-header__logo img {
	display: block;
	width: 190px !important;
	height: auto !important;
	max-width: 42vw;
}

.vs-nav {
	font-size: 0.92rem;
	font-weight: 400;
	gap: 1.6rem;
}

.vs-nav .wp-block-navigation-item__content {
	color: var(--vs-azul);
	text-decoration: none;
	transition: color 0.2s ease;
}

.vs-nav .wp-block-navigation-item__content:hover,
.vs-nav .wp-block-navigation-item__content:focus {
	color: var(--vs-profundo);
	text-decoration: underline;
	text-underline-offset: 6px;
	text-decoration-color: var(--vs-turquesa);
	text-decoration-thickness: 2px;
}

.vs-nav .vs-nav__cta > .wp-block-navigation-item__content {
	background: var(--vs-azul);
	color: #fff;
	padding: 0.55em 1.3em;
	border-radius: 999px;
	text-decoration: none;
}

.vs-nav .vs-nav__cta > .wp-block-navigation-item__content:hover {
	background: var(--vs-profundo);
	color: #fff;
}

.vs-nav .wp-block-navigation__responsive-container-open {
	color: var(--vs-azul);
}

.vs-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--vs-azul) !important;
	color: #fff !important;
	padding: 1.5rem;
}

.vs-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #fff;
	font-size: 1.35rem;
	font-weight: 300;
}

.vs-nav .wp-block-navigation__responsive-container.is-menu-open .vs-nav__cta > .wp-block-navigation-item__content {
	background: var(--vs-turquesa);
	color: var(--vs-profundo);
	font-weight: 500;
	margin-top: 0.5rem;
}

.vs-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	gap: 1.1rem;
}

/* ---------- Tipografía común ---------- */
.vs-kicker {
	display: flex;
	align-items: center;
	gap: 0.8em;
	margin: 0 0 0.6rem;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--vs-azul);
}

.vs-kicker::before {
	content: "";
	width: 2.2rem;
	height: 2px;
	background: currentColor;
	opacity: 0.6;
	flex-shrink: 0;
}

.vs-kicker--light {
	color: var(--vs-turquesa);
}

.vs-title {
	margin-top: 0;
	font-size: clamp(1.9rem, 3.6vw, 3rem);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.vs-section--dark .vs-title,
.vs-section--deep .vs-title,
.vs-section--dark h3,
.vs-section--deep h3 {
	color: #fff;
}

.vs-lead {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.7;
}

.vs-note {
	font-size: 0.8rem;
	color: var(--vs-gris);
	margin-top: 2.5rem;
}

.vs-section--dark .vs-note,
.vs-note--light {
	color: rgba(255, 255, 255, 0.72);
}

/* ---------- Secciones ---------- */
.vs-section {
	padding-top: clamp(4rem, 9vw, 7.5rem);
	padding-bottom: clamp(4rem, 9vw, 7.5rem);
}

.vs-section > .vs-kicker,
.vs-section > .vs-title,
.vs-section > .vs-lead {
	max-width: 1240px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.vs-section > .vs-lead {
	box-sizing: border-box;
	padding-right: min(30%, 420px);
}

.vs-section--dark a:not(.wp-element-button),
.vs-section--deep a:not(.wp-element-button) {
	color: var(--vs-turquesa);
}

.vs-intro {
	gap: clamp(1.5rem, 5vw, 5rem);
	align-items: start;
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.vs-intro .vs-lead {
	margin-top: 0;
}

/* ---------- Botones ---------- */
.wp-block-button .wp-block-button__link {
	padding: 0.85em 1.7em;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid currentColor;
	background: transparent;
	color: var(--vs-azul);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--vs-azul);
	border-color: var(--vs-azul);
	color: #fff;
}

.vs-btn-accent > .wp-block-button__link,
.vs-section--dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.vs-section--deep .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background: var(--vs-turquesa);
	color: var(--vs-profundo);
}

.vs-btn-accent > .wp-block-button__link:hover,
.vs-section--dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
	background: #fff;
	color: var(--vs-profundo);
}

.vs-btn-light.is-style-outline > .wp-block-button__link,
.vs-section--dark .wp-block-button.is-style-outline > .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.8);
}

.vs-btn-light.is-style-outline > .wp-block-button__link:hover,
.vs-section--dark .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--vs-profundo);
}

/* ---------- Portada ---------- */
.vs-hero {
	padding-bottom: clamp(3rem, 8vw, 6rem);
	padding-top: 6rem;
}

.vs-hero .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(90deg, rgba(10, 63, 80, 0.78) 0%, rgba(10, 63, 80, 0.45) 40%, rgba(10, 63, 80, 0) 70%),
		linear-gradient(180deg, rgba(10, 63, 80, 0) 35%, rgba(10, 63, 80, 0.85) 100%) !important;
}

.vs-hero .vs-kicker,
.vs-hero__title,
.vs-hero__lead {
	text-shadow: 0 2px 18px rgba(4, 30, 40, 0.35);
}

.vs-hero .wp-block-cover__inner-container {
	color: #fff;
}

.vs-hero__title {
	color: #fff;
	font-size: clamp(2.3rem, 5.4vw, 4.4rem);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin: 0.2rem 0 1.2rem;
	max-width: 16ch;
}

.vs-hero__lead {
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	max-width: 46ch;
	color: rgba(255, 255, 255, 0.92);
}

.vs-hero__buttons {
	margin-top: 1.8rem;
	gap: 0.8rem;
}

/* ---------- Cifras ---------- */
.vs-stats {
	padding-top: 2.2rem;
	padding-bottom: 2.2rem;
	color: #fff;
}

.vs-stats__grid {
	gap: 1.5rem 2rem;
}

.vs-stat {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.85);
	border-left: 1px solid rgba(162, 241, 248, 0.4);
	padding-left: 1.1rem;
}

.vs-stat strong {
	display: block;
	font-size: clamp(1.7rem, 2.6vw, 2.2rem);
	font-weight: 300;
	color: var(--vs-turquesa);
	line-height: 1.1;
	margin-bottom: 0.2rem;
}

/* ---------- Tarjetas ---------- */
.vs-cards {
	gap: 1.6rem;
}

.vs-card {
	background: #fff;
	border-radius: var(--vs-radio);
	overflow: hidden;
	box-shadow: var(--vs-sombra);
	border: 1px solid var(--vs-linea);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.vs-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(10, 63, 80, 0.13);
}

.vs-card .vs-card__img {
	margin: 0;
}

.vs-card .vs-card__img img {
	display: block;
	width: 100%;
}

.vs-card__title {
	font-size: 1.12rem;
	font-weight: 500;
	margin: 1.2rem 1.4rem 0.3rem;
}

.vs-card__text {
	margin: 0 1.4rem 1.5rem;
	font-size: 0.93rem;
	color: var(--vs-gris);
}

/* ---------- Viviendas ---------- */
.vs-homes {
	gap: 1.6rem;
	margin-top: 2.5rem !important;
	margin-bottom: 3rem !important;
}

.vs-home {
	background: #fff;
	border-radius: var(--vs-radio);
	padding: clamp(1.6rem, 3vw, 2.4rem);
	box-shadow: var(--vs-sombra);
	border-top: 5px solid var(--vs-azul);
}

.vs-home__tag {
	margin: 0;
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--vs-gris);
}

.vs-home__title {
	margin: 0.1rem 0 1rem;
	font-size: clamp(2rem, 3vw, 2.6rem);
	font-weight: 300;
}

.vs-specs,
.vs-rooms {
	margin: 1rem 0 1.5rem;
}

.vs-specs table,
.vs-rooms table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.95rem;
}

.vs-specs td,
.vs-rooms td {
	border: 0;
	border-bottom: 1px solid var(--vs-linea);
	padding: 0.6rem 0;
	vertical-align: top;
}

.vs-specs td:last-child,
.vs-rooms td:last-child {
	text-align: right;
	font-weight: 500;
	color: var(--vs-azul);
	white-space: nowrap;
	padding-left: 0.8rem;
}

.vs-specs table.has-fixed-layout td:first-child,
.vs-rooms table.has-fixed-layout td:first-child {
	width: 52%;
}

.vs-rooms--light td {
	border-bottom-color: rgba(255, 255, 255, 0.18);
	color: rgba(255, 255, 255, 0.9);
}

.vs-rooms--light td:last-child {
	color: var(--vs-turquesa);
}

.vs-floor {
	background: #fff;
	border-radius: var(--vs-radio);
	padding: clamp(1.4rem, 3.5vw, 3rem);
	margin-top: 1.6rem !important;
	box-shadow: var(--vs-sombra);
}

.vs-floor__cols {
	gap: clamp(1.5rem, 4vw, 3.5rem);
	margin-bottom: 0;
}

.vs-floor__title {
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 300;
	margin: 0 0 0.6rem;
}

.vs-plans {
	gap: 1rem;
	align-items: start;
}

.vs-plan {
	margin: 0;
	background: var(--vs-suave);
	border-radius: var(--vs-radio-sm);
	padding: 0.8rem 0.8rem 0.4rem;
	text-align: center;
}

.vs-plan img {
	display: block;
	width: auto !important;
	max-width: 100%;
	max-height: 620px;
	margin: 0 auto;
	object-fit: contain;
	cursor: zoom-in;
}

.vs-plan figcaption,
.vs-floor__3d figcaption,
.vs-option__3d figcaption {
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vs-azul);
	margin-top: 0.6rem;
}

.vs-floor__3d {
	margin: 2rem 0 0 !important;
	background: var(--vs-suave);
	border-radius: var(--vs-radio-sm);
	padding: clamp(0.8rem, 2vw, 1.6rem);
	text-align: center;
}

.vs-floor__3d img {
	display: block;
	margin: 0 auto;
	max-height: 520px;
	width: auto !important;
	max-width: 100%;
	object-fit: contain;
}

/* ---------- Sótano ---------- */
.vs-options {
	gap: 1.6rem;
	margin-top: 2.5rem !important;
}

.vs-option {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(162, 241, 248, 0.22);
	border-radius: var(--vs-radio);
	overflow: hidden;
}

.vs-option__img {
	margin: 0 !important;
}

.vs-option__img img {
	display: block;
	width: 100%;
}

.vs-option__body {
	padding: clamp(1.4rem, 3vw, 2.2rem);
}

.vs-option__tag {
	display: inline-block;
	margin: 0 0 0.4rem;
	background: var(--vs-turquesa);
	color: var(--vs-profundo);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.3em 0.9em;
	border-radius: 999px;
}

.vs-option__title {
	font-size: clamp(1.35rem, 2.2vw, 1.7rem);
	font-weight: 300;
	margin: 0.4rem 0 0.6rem;
	line-height: 1.25;
}

.vs-option__img2 {
	margin: 1.2rem 0 0 !important;
}

.vs-option__img2 img {
	border-radius: var(--vs-radio-sm);
	display: block;
	width: 100%;
}

.vs-option__3d {
	margin: 1rem 0 0 !important;
	background: #fff;
	border-radius: var(--vs-radio-sm);
	padding: 0.8rem;
	text-align: center;
}

.vs-option__3d img {
	display: block;
	width: 100%;
}

.vs-common {
	margin-top: 1.6rem !important;
	gap: 1.6rem;
	align-items: stretch;
}

.vs-common__text {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(162, 241, 248, 0.22);
	border-radius: var(--vs-radio);
	padding: clamp(1.4rem, 3vw, 2rem);
}

.vs-common .wp-block-image {
	margin: 0;
	position: relative;
}

.vs-common .wp-block-image img {
	border-radius: var(--vs-radio);
	display: block;
	width: 100%;
	height: 100%;
}

.vs-common .wp-block-image figcaption {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	margin: 0;
	background: rgba(10, 63, 80, 0.85);
	color: #fff;
	font-size: 0.8rem;
	padding: 0.3em 0.9em;
	border-radius: 999px;
}

/* ---------- Galería ---------- */
.vs-gallery-title {
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 2.8rem auto 1rem !important;
	max-width: 1240px;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.vs-gallery-title::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--vs-linea);
}

.wp-block-gallery.vs-gallery {
	gap: 0.8rem !important;
}

.wp-block-gallery.vs-gallery.has-nested-images figure.wp-block-image {
	flex-grow: 0 !important;
}

.wp-block-gallery.vs-gallery .wp-block-image img {
	border-radius: var(--vs-radio-sm);
	aspect-ratio: 16 / 10;
}

.wp-block-gallery.vs-gallery .wp-block-image figcaption {
	border-radius: 0 0 var(--vs-radio-sm) var(--vs-radio-sm);
	font-size: 0.78rem;
	padding: 2.2rem 0.8rem 0.6rem;
	text-align: left;
	background: linear-gradient(0deg, rgba(10, 63, 80, 0.85), rgba(10, 63, 80, 0));
	opacity: 0;
	transition: opacity 0.25s ease;
}

.wp-block-gallery.vs-gallery .wp-block-image:hover figcaption,
.wp-block-gallery.vs-gallery .wp-block-image:focus-within figcaption {
	opacity: 1;
}

@media (max-width: 781px) {
	.wp-block-gallery.vs-gallery .wp-block-image {
		width: calc(50% - 0.4rem) !important;
	}

	.wp-block-gallery.vs-gallery .wp-block-image figcaption {
		opacity: 1;
	}
}

/* ---------- Zonas comunes ---------- */
.vs-split {
	gap: clamp(2rem, 6vw, 5rem);
}

.vs-rounded img {
	border-radius: var(--vs-radio);
	box-shadow: var(--vs-sombra);
}

.vs-badge {
	display: inline-block;
	margin: 0 0 1rem;
	background: var(--vs-turquesa);
	color: var(--vs-profundo);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.35em 1em;
	border-radius: 999px;
}

/* ---------- Autopromoción ---------- */
.vs-steps {
	gap: 1.8rem;
}

.vs-step {
	border-top: 1px solid rgba(162, 241, 248, 0.35);
	padding-top: 1.2rem;
}

.vs-step__num {
	font-size: 2.6rem;
	font-weight: 300;
	color: var(--vs-turquesa);
	margin: 0;
	line-height: 1;
}

.vs-step__title {
	font-size: 1.15rem;
	font-weight: 500;
	margin: 0.9rem 0 0.4rem;
}

.vs-step p:not(.vs-step__num) {
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.95rem;
}

/* ---------- Ubicación ---------- */
.vs-nearby {
	padding-left: 1.2rem;
}

.vs-nearby li {
	margin-bottom: 0.35rem;
}

.vs-nearby li::marker {
	color: var(--vs-azul);
}

.vs-map {
	border-radius: var(--vs-radio);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: var(--vs-azul);
	background-image:
		linear-gradient(135deg, rgba(14, 85, 108, 0.94), rgba(10, 63, 80, 0.96)),
		repeating-linear-gradient(0deg, rgba(162, 241, 248, 0.18) 0 1px, transparent 1px 48px),
		repeating-linear-gradient(90deg, rgba(162, 241, 248, 0.18) 0 1px, transparent 1px 48px);
	box-shadow: var(--vs-sombra);
}

.vs-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.vs-map__placeholder {
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
	color: #fff;
	gap: 0.6rem;
}

.vs-map__placeholder::before {
	content: "";
	width: 64px;
	height: 72px;
	background: url("../images/icono.png") center / contain no-repeat;
	filter: brightness(0) invert(1);
	opacity: 0.9;
	margin-bottom: 0.4rem;
}

.vs-map__label {
	margin: 0;
	font-size: 1.05rem;
}

.vs-map__btn {
	background: var(--vs-turquesa) !important;
	color: var(--vs-profundo) !important;
	border: 0;
	border-radius: 999px;
	padding: 0.8em 1.8em;
	cursor: pointer;
	font: inherit;
	font-weight: 500;
	margin-top: 0.4rem;
}

.vs-map__btn:hover {
	background: #fff !important;
}

.vs-map__legal {
	margin: 0;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.7);
}

/* ---------- Calidades ---------- */
.vs-accordion {
	background: #fff;
	border-radius: var(--vs-radio-sm);
	padding: 0 1.4rem;
	margin-top: 0.7rem !important;
	border: 1px solid var(--vs-linea);
}

.vs-accordion summary {
	cursor: pointer;
	padding: 1.1rem 0;
	font-weight: 500;
	color: var(--vs-azul);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.vs-accordion summary::-webkit-details-marker {
	display: none;
}

.vs-accordion summary::after {
	content: "+";
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	transition: transform 0.2s ease;
}

.vs-accordion[open] summary::after {
	transform: rotate(45deg);
}

.vs-accordion[open] {
	padding-bottom: 1rem;
}

/* ---------- Descargas ---------- */
.vs-downloads {
	gap: 1.4rem;
	margin-top: 2rem !important;
}

.vs-download {
	background: var(--vs-suave);
	border-radius: var(--vs-radio);
	padding: 1.8rem;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--vs-linea);
}

.vs-download::before {
	content: "";
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--vs-azul) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='1.5'/%3E%3Cpath d='M3 11h6M9 3v4M13 11h8M13 11v4M13 18v3M9 15v6M9 11v1'/%3E%3C/svg%3E") center / 62% no-repeat;
	margin-bottom: 1.2rem;
}

/* Iconos: planos (1 y 2), memoria de calidades (3) y folleto (4) */
.vs-downloads > .vs-download:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2.5H6.5A1.5 1.5 0 0 0 5 4v16a1.5 1.5 0 0 0 1.5 1.5h11A1.5 1.5 0 0 0 19 20V7.5z'/%3E%3Cpath d='M14 2.5v5h5'/%3E%3Cpath d='M8.5 13.5l2 2 4-4.5M8.5 18.5h7'/%3E%3C/svg%3E"); }
.vs-downloads > .vs-download:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 5.5c3-1.3 6.2-1.2 9.5.8 3.3-2 6.5-2.1 9.5-.8v13c-3-1.3-6.2-1.2-9.5.8-3.3-2-6.5-2.1-9.5-.8z'/%3E%3Cpath d='M12 6.3v13'/%3E%3C/svg%3E"); }

.vs-download__title {
	font-size: 1.08rem;
	font-weight: 500;
	margin: 0 0 0.4rem;
}

.vs-download__text {
	text-align: left !important;
	hyphens: manual !important;
	font-size: 0.9rem;
	color: var(--vs-gris);
	flex: 1;
}

/* ---------- Contacto ---------- */
.vs-contact {
	gap: clamp(2rem, 6vw, 5rem);
}

.vs-contact__data {
	font-size: 1.25rem;
	line-height: 1.8;
	margin-top: 1.6rem;
}

.vs-contact__data a {
	color: #fff !important;
	text-decoration: none;
	font-weight: 400;
}

.vs-rgpd {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.7);
	margin-top: 2rem;
}

.vs-contact__form {
	background: #fff;
	color: var(--wp--preset--color--contrast, #16303a);
	border-radius: var(--vs-radio);
	padding: clamp(1.5rem, 3.5vw, 2.6rem);
	box-shadow: 0 24px 60px rgba(4, 30, 40, 0.3);
}

.vs-form {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.vs-form p {
	margin: 0 0 0.9rem;
}

.vs-form__fila {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 0 1rem;
}

.vs-form label {
	display: block;
	font-size: 0.82rem;
	font-weight: 500;
	margin-bottom: 0.35rem;
	color: var(--vs-azul);
}

.vs-form input[type="text"],
.vs-form input[type="tel"],
.vs-form input[type="email"],
.vs-form select,
.vs-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 0.95rem;
	color: inherit;
	background: var(--vs-suave);
	border: 1px solid var(--vs-linea);
	border-radius: 10px;
	padding: 0.8rem 0.95rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.vs-form input:focus,
.vs-form select:focus,
.vs-form textarea:focus {
	outline: none;
	border-color: var(--vs-azul);
	box-shadow: 0 0 0 3px rgba(14, 85, 108, 0.15);
	background: #fff;
}

.vs-form__check {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}

.vs-form__check input {
	margin-top: 0.25rem;
	accent-color: var(--vs-azul);
	width: 1.05rem;
	height: 1.05rem;
	flex-shrink: 0;
}

.vs-form__check label {
	font-weight: 400;
	color: var(--vs-gris);
	margin: 0;
}

.vs-form__check a {
	color: var(--vs-azul) !important;
}

.vs-form__enviar button {
	width: 100%;
	cursor: pointer;
	border: 0;
	border-radius: 999px;
	padding: 0.95em 1.8em;
	background: var(--vs-azul);
	color: #fff;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 500;
}

.vs-form__enviar button:hover {
	background: var(--vs-profundo);
}

.vs-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.vs-form-aviso {
	border-radius: 10px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 1.2rem;
	font-size: 0.92rem;
}

.vs-form-aviso--ok {
	background: #e3f7ee;
	color: #0b5b3a;
}

.vs-form-aviso--error {
	background: #fdecec;
	color: #8a1f1f;
}

/* ---------- Pie ---------- */
.vs-footer {
	padding-top: clamp(3rem, 6vw, 4.5rem);
	padding-bottom: 2rem;
	font-size: 0.92rem;
}

.vs-footer a {
	color: #fff;
	text-decoration: none;
}

.vs-footer a:hover {
	color: var(--vs-turquesa);
}

.vs-footer__cols {
	gap: 2rem;
}

.vs-footer__logo {
	margin-top: 0;
}

.vs-footer__logo img {
	width: 220px !important;
	height: auto !important;
}

.vs-footer__claim {
	color: rgba(255, 255, 255, 0.7);
	margin-top: 1rem;
}

.vs-footer__title {
	color: var(--vs-turquesa);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0.4rem 0 0.9rem;
}

.vs-footer p {
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.8;
}

.vs-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	line-height: 2;
}

.vs-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	margin-top: 2.5rem !important;
	padding-top: 1.5rem;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.55) !important;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.vs-nav {
		gap: 1.1rem;
		font-size: 0.86rem;
	}
}

@media (max-width: 781px) {
	:root {
		--vs-header-h: 64px;
	}

	.vs-header__logo img {
		width: 150px !important;
	}

	.vs-section > .vs-lead {
		padding-right: 0;
	}

	.vs-hero {
		min-height: 82vh !important;
	}

	.vs-plan img {
		max-height: 440px;
	}

	.vs-floor__cols {
		gap: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.vs-card,
	.vs-card:hover {
		transition: none;
		transform: none;
	}
}

/* ---------- Rejillas adaptables (móvil, tablet, escritorio) ---------- */
.vs-intro,
.vs-cards,
.vs-steps,
.vs-downloads,
.vs-common {
	grid-template-columns: minmax(0, 1fr) !important;
}

.vs-stats__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (min-width: 600px) {
	.vs-cards,
	.vs-steps,
	.vs-downloads,
	.vs-common {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.vs-stats__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 900px) {
	.vs-intro {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.vs-common {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1100px) {
	.vs-cards,
	.vs-steps,
	.vs-downloads {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}

	.vs-stats__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 599px) {
	.vs-plans {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.vs-floor__cols .vs-plans:has(> :nth-child(3)) {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.vs-plan {
		padding: 0.5rem 0.5rem 0.2rem;
	}

	.vs-plan figcaption {
		font-size: 0.68rem;
		letter-spacing: 0.04em;
	}

	.vs-specs td,
	.vs-rooms td {
		font-size: 0.88rem;
	}

	.vs-specs td:last-child,
	.vs-rooms td:last-child {
		white-space: normal;
	}
}

@media (max-width: 781px) {
	.vs-map {
		aspect-ratio: auto;
		min-height: 340px;
	}

	.vs-map.is-loaded {
		aspect-ratio: 4 / 5;
	}

	.wp-block-gallery.vs-gallery .wp-block-image figcaption {
		display: none;
	}
}

/* ==========================================================================
   v1.1 — iconos, pestañas, carruseles, vídeos, ubicación
   ========================================================================== */
:root {
	--vs-ico-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--vs-ico-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E");
	--vs-ico-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E");
	--vs-ico-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}
/* ---------- Lista con checks ---------- */
.vs-checks {
	list-style: none;
	padding: 0;
	margin: 1.2rem 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.4rem;
}

.vs-checks li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 400;
}

.vs-checks li::before {
	content: "";
	width: 1.15rem;
	height: 1.15rem;
	flex-shrink: 0;
	background: var(--vs-azul);
	-webkit-mask: var(--vs-ico-check) center / contain no-repeat;
	mask: var(--vs-ico-check) center / contain no-repeat;
}

.vs-section--dark .vs-checks li::before {
	background: var(--vs-turquesa);
}

/* ---------- Pestañas ---------- */
.vs-tabs.is-ready > .vs-tabpanel > .vs-tabpanel__label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.vs-tabpanel[hidden] {
	display: none !important;
}

.vs-tablist {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.4rem;
}

.vs-tab {
	font: inherit;
	font-size: 0.95rem;
	font-weight: 500;
	cursor: pointer;
	border-radius: 999px;
	padding: 0.65em 1.5em;
	border: 1.5px solid var(--vs-azul);
	background: transparent;
	color: var(--vs-azul);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.vs-tab:hover {
	background: rgba(14, 85, 108, 0.08);
}

.vs-tab[aria-selected="true"] {
	background: var(--vs-azul);
	color: #fff;
}

.vs-tabs--tipo {
	margin-top: 2.2rem !important;
}

.vs-tabs--tipo > .vs-tablist-wrap > .vs-tablist .vs-tab {
	font-size: 1.15rem;
	padding: 0.7em 2em;
}

.vs-tabs--planta {
	background: #fff;
	border-radius: var(--vs-radio);
	padding: clamp(1.2rem, 3vw, 2.4rem);
	box-shadow: var(--vs-sombra);
}

.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist {
	border-bottom: 1px solid var(--vs-linea);
	padding-bottom: 1.2rem;
	margin-bottom: 1.8rem;
}

.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist .vs-tab {
	border-color: var(--vs-linea);
	font-size: 0.88rem;
}

.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist .vs-tab[aria-selected="true"] {
	border-color: var(--vs-azul);
}

.vs-tabs--planta .vs-floor {
	background: transparent;
	box-shadow: none;
	padding: 0;
	margin: 0 !important;
	border-radius: 0;
}

.vs-floor__cols {
	align-items: flex-start !important;
}

.vs-floor__text {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.6;
	margin-top: 0.4rem;
}

.vs-floor__info .vs-floor__3d {
	margin: 1.2rem 0 0 !important;
	padding: 0.6rem;
}

.vs-floor__info .wp-block-buttons {
	margin-top: 1.6rem;
}

.vs-tabs:not(.is-ready) .vs-tabpanel + .vs-tabpanel {
	margin-top: 2rem;
}

/* ---------- Carrusel de la galería ---------- */
.vs-carousel-wrap {
	position: relative;
	max-width: 1240px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-gallery.vs-carousel {
	display: flex !important;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	gap: 1rem !important;
	padding-bottom: 0.2rem;
	margin: 0 !important;
}

.wp-block-gallery.vs-carousel::-webkit-scrollbar {
	display: none;
}

.wp-block-gallery.vs-carousel.has-nested-images figure.wp-block-image {
	flex: 0 0 calc(50% - 0.5rem) !important;
	width: calc(50% - 0.5rem) !important;
	max-width: none !important;
	scroll-snap-align: start;
	margin: 0 !important;
}

.wp-block-gallery.vs-carousel .wp-block-image img {
	aspect-ratio: 16 / 9 !important;
	border-radius: var(--vs-radio-sm);
}

.wp-block-gallery.vs-carousel .wp-block-image figcaption {
	opacity: 1 !important;
	display: block !important;
	font-size: 0.85rem;
}

.vs-carousel-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.8rem;
	margin-top: 0.9rem;
}

.vs-carousel-count {
	font-size: 0.85rem;
	color: var(--vs-gris);
	min-width: 4.5rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.vs-carousel-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1.5px solid var(--vs-azul);
	background: #fff;
	cursor: pointer;
	position: relative;
	transition: background-color 0.2s ease;
}

.vs-carousel-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--vs-azul);
	-webkit-mask: var(--vs-ico-left) center / 20px no-repeat;
	mask: var(--vs-ico-left) center / 20px no-repeat;
}

.vs-carousel-btn--next::before {
	-webkit-mask-image: var(--vs-ico-right);
	mask-image: var(--vs-ico-right);
}

.vs-carousel-btn:hover:not(:disabled) {
	background: var(--vs-azul);
}

.vs-carousel-btn:hover:not(:disabled)::before {
	background: #fff;
}

.vs-carousel-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

@media (max-width: 781px) {
	.wp-block-gallery.vs-carousel.has-nested-images figure.wp-block-image {
		flex-basis: 86% !important;
		width: 86% !important;
	}

	.wp-block-gallery.vs-carousel .wp-block-image figcaption {
		font-size: 0.75rem;
	}
}

/* ---------- Vídeo tour (YouTube) ---------- */
.vs-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--vs-radio);
	overflow: hidden;
	background: #000;
	box-shadow: 0 24px 60px rgba(4, 30, 40, 0.35);
	max-width: 1240px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.vs-video iframe,
.vs-video__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.vs-video__poster {
	filter: brightness(0.7);
	transition: filter 0.3s ease, transform 0.6s ease;
}

.vs-video:hover .vs-video__poster {
	filter: brightness(0.6);
	transform: scale(1.02);
}

.vs-video__play {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: #fff;
	font: inherit;
	width: 100%;
}

.vs-video__icon {
	width: clamp(64px, 9vw, 96px);
	height: clamp(64px, 9vw, 96px);
	border-radius: 50%;
	background: var(--vs-turquesa);
	position: relative;
	box-shadow: 0 0 0 12px rgba(162, 241, 248, 0.25);
	transition: transform 0.2s ease;
}

.vs-video__icon::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--vs-profundo);
	-webkit-mask: var(--vs-ico-play) 55% center / 42% no-repeat;
	mask: var(--vs-ico-play) 55% center / 42% no-repeat;
}

.vs-video__play:hover .vs-video__icon {
	transform: scale(1.06);
}

.vs-video__label {
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	font-weight: 500;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.vs-video__legal {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.8rem;
	margin: 0;
	text-align: center;
	font-size: 0.72rem;
	color: rgba(255, 255, 255, 0.75);
	pointer-events: none;
}

/* ---------- Timelapse ---------- */
.vs-timelapse {
	margin: 0 auto clamp(2.5rem, 5vw, 4rem) !important;
	max-width: 1240px;
}

.vs-timelapse video {
	display: block;
	width: 100%;
	border-radius: var(--vs-radio);
	box-shadow: 0 24px 60px rgba(4, 30, 40, 0.35);
	background: #000;
}

.vs-timelapse figcaption {
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.85rem;
	text-align: left;
	margin-top: 0.8rem;
}

/* ---------- Residencial ---------- */
.vs-bignum {
	font-size: 1.05rem;
	color: var(--vs-gris);
	margin: 1.6rem 0 1rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--vs-linea);
}

.vs-bignum strong {
	display: block;
	font-size: clamp(2.6rem, 5vw, 3.6rem);
	font-weight: 300;
	line-height: 1;
	color: var(--vs-azul);
	letter-spacing: -0.02em;
	margin-bottom: 0.3rem;
}

/* ---------- Ubicación ---------- */
.vs-mapa {
	margin: 0 auto 2rem !important;
}

.vs-mapa img {
	display: block;
	width: 100%;
	border-radius: var(--vs-radio);
	box-shadow: var(--vs-sombra);
}

.vs-distances {
	gap: 1.2rem !important;
}

.vs-distance {
	background: var(--vs-suave);
	border: 1px solid var(--vs-linea);
	border-radius: var(--vs-radio);
	padding: 1.4rem 1.5rem 0.6rem;
}

.vs-distance__title {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 38px;
	padding-left: 50px;
	font-size: 1rem;
	font-weight: 500;
	margin: 0 0 0.4rem;
}

.vs-distance__title::before,
.vs-distance__title::after {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 38px;
	height: 38px;
	transform: translateY(-50%);
}

.vs-distance__title::before {
	border-radius: 50%;
	background: var(--vs-azul);
}

.vs-distance__title::after {
	background: #fff;
	-webkit-mask: var(--vs-ico) center / 55% no-repeat;
	mask: var(--vs-ico) center / 55% no-repeat;
}

.vs-distance__table {
	margin: 0 !important;
}

.vs-distance__table td {
	font-size: 0.9rem;
}

.vs-distance__table tr:last-child td {
	border-bottom: 0;
}

.vs-distance__table td:last-child {
	font-size: 0.85rem;
	line-height: 1.35;
}

/* ---------- Descargas (3) ---------- */
@media (min-width: 900px) {
	.vs-downloads.vs-downloads--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

.vs-section--soft .vs-download {
	background: #fff;
}

/* ---------- Rejillas nuevas ---------- */
.vs-distances {
	grid-template-columns: minmax(0, 1fr) !important;
}

@media (min-width: 600px) {
	.vs-distances {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1000px) {
	.vs-distances {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 781px) {
	.vs-tabs--tipo > .vs-tablist-wrap > .vs-tablist .vs-tab {
		flex: 1;
		padding: 0.7em 1em;
	}

	.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin-left: -0.2rem;
		margin-right: -0.2rem;
	}

	.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist .vs-tab {
		white-space: nowrap;
		flex-shrink: 0;
	}

	.vs-floor__plans .vs-plan img {
		max-height: 520px;
	}
}

.vs-floor__plans .vs-plan img {
	max-height: 680px !important;
	height: auto !important;
}

/* ==========================================================================
   v1.2 — contacto con iconos y botones flotantes
   ========================================================================== */
:root {
	--vs-ico-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--vs-ico-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M17.5 14.4c-.3-.1-1.8-.9-2-1-.3-.1-.5-.1-.7.1-.2.3-.8 1-.9 1.2-.2.2-.3.2-.6.1-.3-.1-1.3-.5-2.4-1.5-.9-.8-1.5-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.4-.5c.2-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.8-.7 2-1.4.2-.7.2-1.3.2-1.4-.1-.2-.3-.3-.6-.4zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 0 1 2.2 12 9.8 9.8 0 0 1 12 2.2a9.8 9.8 0 0 1 9.8 9.8 9.8 9.8 0 0 1-9.8 9.8zm8.4-18.2A11.8 11.8 0 0 0 12 .1 11.9 11.9 0 0 0 1.7 17.9L0 24l6.3-1.6A11.9 11.9 0 0 0 12 23.9 11.9 11.9 0 0 0 23.9 12c0-3.2-1.2-6.2-3.5-8.4z'/%3E%3C/svg%3E");
	--vs-ico-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2'/%3E%3Cpath d='M3 6l9 7 9-7'/%3E%3C/svg%3E");
}

.vs-contact-links a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none;
}

.vs-contact-links a::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: var(--vs-ico) center / contain no-repeat;
	mask: var(--vs-ico) center / contain no-repeat;
}

.vs-link--tel { --vs-ico: var(--vs-ico-tel); }
.vs-link--wa { --vs-ico: var(--vs-ico-wa); }
.vs-link--mail { --vs-ico: var(--vs-ico-mail); }

.vs-contact__data.vs-contact-links {
	line-height: 2.2;
}

.vs-contact__data .vs-link--wa,
.vs-contact__data .vs-link--tel,
.vs-contact__data .vs-link--mail {
	color: #fff !important;
}

.vs-contact__data a::before {
	background: var(--vs-turquesa);
}

.vs-footer .vs-contact-links a::before {
	background: var(--vs-turquesa);
}

/* Botones flotantes */
.vs-float {
	position: fixed;
	right: max(16px, env(safe-area-inset-right));
	bottom: max(16px, env(safe-area-inset-bottom));
	z-index: 999;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}

.vs-float__btn {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(4, 30, 40, 0.3);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	position: relative;
}

.vs-float__btn::before {
	content: "";
	width: 28px;
	height: 28px;
	background: #fff;
	-webkit-mask: var(--vs-ico) center / contain no-repeat;
	mask: var(--vs-ico) center / contain no-repeat;
}

.vs-float__btn:hover,
.vs-float__btn:focus-visible {
	transform: scale(1.07);
	box-shadow: 0 12px 30px rgba(4, 30, 40, 0.4);
}

.vs-float__btn--wa {
	--vs-ico: var(--vs-ico-wa);
	background: #25d366;
}

.vs-float__btn--tel {
	--vs-ico: var(--vs-ico-tel);
	background: var(--vs-azul);
}

.vs-float__btn--tel::before {
	width: 24px;
	height: 24px;
}

.vs-float__label {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%);
	background: #fff;
	color: var(--vs-profundo);
	font-size: 0.82rem;
	font-weight: 500;
	white-space: nowrap;
	padding: 0.4em 0.9em;
	border-radius: 999px;
	box-shadow: 0 4px 14px rgba(4, 30, 40, 0.18);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.vs-float__btn:hover .vs-float__label,
.vs-float__btn:focus-visible .vs-float__label {
	opacity: 1;
}

@media (max-width: 781px) {
	.vs-float__btn {
		width: 52px;
		height: 52px;
	}
}

.vs-float__btn--tel {
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85), 0 8px 24px rgba(4, 30, 40, 0.3);
}

/* Botones flotantes: solo en móvil, uno a cada lado de la parte inferior */
.vs-float {
	display: none;
}

@media (max-width: 781px) {
	.vs-float {
		display: block;
		position: static;
	}

	.vs-float__btn {
		position: fixed;
		bottom: max(16px, env(safe-area-inset-bottom));
		z-index: 999;
	}

	.vs-float__btn--wa {
		right: max(16px, env(safe-area-inset-right));
	}

	.vs-float__btn--tel {
		left: max(16px, env(safe-area-inset-left));
	}

	.vs-float__label {
		display: none;
	}

	/* que el pie no quede tapado por los botones */
	.vs-footer {
		padding-bottom: 6rem;
	}
}

/* Iconos de servicios cercanos */
.vs-distance--salud { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6v6h6v6h-6v6H9v-6H3V9h6z'/%3E%3C/svg%3E"); }
.vs-distance--educacion { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5L2 9zM6 11v5c0 1.5 3 3 6 3s6-1.5 6-3v-5M22 9v6'/%3E%3C/svg%3E"); }
.vs-distance--playa { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9zM12 12v7a2 2 0 0 1-4 0'/%3E%3C/svg%3E"); }
.vs-distance--parques { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-6M12 16a5 5 0 0 0 4.5-7.2A4.5 4.5 0 0 0 12 2a4.5 4.5 0 0 0-4.5 6.8A5 5 0 0 0 12 16z'/%3E%3C/svg%3E"); }
.vs-distance--compras { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2 3h3l2.6 12.4a2 2 0 0 0 2 1.6h8.2a2 2 0 0 0 2-1.6L21 7H6'/%3E%3C/svg%3E"); }
.vs-distance--conexiones { --vs-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E"); }

.vs-intro .vs-lead + .vs-lead {
	margin-top: 1.1rem;
}

/* Aviso de más pestañas (planos en móvil) */
.vs-tablist-wrap {
	position: relative;
}

.vs-tablist-wrap > .vs-tablist {
	scroll-behavior: smooth;
}

.vs-tablist-more {
	display: none;
	position: absolute;
	top: 0;
	right: 0;
	height: calc(100% - 1.2rem);
	width: 64px;
	border: 0;
	padding: 0;
	cursor: pointer;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 55%);
}

.vs-tablist-more::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	border-radius: 50%;
	background: var(--vs-azul);
	box-shadow: 0 2px 8px rgba(10, 63, 80, 0.25);
	animation: vs-nudge 1.4s ease-in-out infinite;
}

.vs-tablist-more::before {
	content: "";
	position: absolute;
	right: 11px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	background: #fff;
	-webkit-mask: var(--vs-ico-right) center / contain no-repeat;
	mask: var(--vs-ico-right) center / contain no-repeat;
	z-index: 1;
	animation: vs-nudge 1.4s ease-in-out infinite;
}

.vs-tablist-wrap.has-more .vs-tablist-more {
	display: block;
}

.vs-tablist-tip {
	display: none;
	margin: -0.9rem 0 1.4rem;
	font-size: 0.8rem;
	color: var(--vs-gris);
	align-items: center;
	gap: 0.4rem;
}

.vs-tablist-tip::before {
	content: "";
	width: 18px;
	height: 18px;
	background: var(--vs-azul);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11V6a1.5 1.5 0 0 1 3 0v5m0-1V4.5a1.5 1.5 0 0 1 3 0V11m0-2.5a1.5 1.5 0 0 1 3 0V14a7 7 0 0 1-7 7h-.5a6 6 0 0 1-4.6-2.2L3.7 15a1.6 1.6 0 0 1 2.4-2.1L9 15.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11V6a1.5 1.5 0 0 1 3 0v5m0-1V4.5a1.5 1.5 0 0 1 3 0V11m0-2.5a1.5 1.5 0 0 1 3 0V14a7 7 0 0 1-7 7h-.5a6 6 0 0 1-4.6-2.2L3.7 15a1.6 1.6 0 0 1 2.4-2.1L9 15.5'/%3E%3C/svg%3E") center / contain no-repeat;
	animation: vs-swipe 1.8s ease-in-out infinite;
}

.vs-tablist-tip.is-visible {
	display: flex;
}

.vs-tabs--tipo > .vs-tablist-wrap .vs-tablist-more,
.vs-tabs--tipo > .vs-tablist-tip {
	display: none !important;
}

@keyframes vs-nudge {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(4px); }
}

@keyframes vs-swipe {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(-6px); }
}

@media (prefers-reduced-motion: reduce) {
	.vs-tablist-more::before,
	.vs-tablist-more::after,
	.vs-tablist-tip::before {
		animation: none;
	}
}

.vs-tabs--planta > .vs-tablist-wrap {
	margin-bottom: 1.8rem;
}

.vs-tabs--planta > .vs-tablist-wrap > .vs-tablist {
	margin-bottom: 0 !important;
}

.vs-tabs--planta > .vs-tablist-tip {
	margin-top: -1.2rem;
}

/* ---------- v1.3.5 ---------- */
/* Cifras de portada: 6 elementos */
@media (min-width: 1100px) {
	.vs-stats__grid {
		grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
	}
}

/* Vídeo tour en móvil: que el aviso no pise el botón */
@media (max-width: 600px) {
	.vs-video__play {
		gap: 0.5rem;
		padding-bottom: 1.6rem;
	}

	.vs-video__icon {
		width: 52px;
		height: 52px;
		box-shadow: 0 0 0 8px rgba(162, 241, 248, 0.25);
	}

	.vs-video__label {
		font-size: 0.95rem;
	}

	.vs-video__legal {
		bottom: 0.4rem;
		font-size: 0.6rem;
		line-height: 1.3;
		padding: 0 0.8rem;
	}
}

/* Botón Contacto del menú móvil con más aire */
.vs-nav .wp-block-navigation__responsive-container.is-menu-open .vs-nav__cta > .wp-block-navigation-item__content {
	padding: 0.7em 1.8em !important;
	display: inline-block;
}

/* Párrafos justificados (en móvil se dejan alineados a la izquierda para evitar huecos) */
@media (min-width: 600px) {
	.vs-main p:not(.vs-kicker):not(.vs-stat):not(.vs-note):not(.vs-option__tag):not(.vs-home__tag):not(.vs-step__num):not(.vs-bignum):not(.vs-video__legal):not(.vs-map__legal):not(.vs-map__label):not(.vs-contact__data):not(.vs-tablist-tip):not(.vs-form__check):not(.vs-form__campo):not(.vs-form__enviar),
	.wp-block-post-content p,
	.vs-footer__legal {
		text-align: justify;
		-webkit-hyphens: auto;
		hyphens: auto;
		hyphenate-limit-chars: 7 3 3;
	}
}

/* Contacto en móvil: datos → formulario → texto de protección de datos */
@media (max-width: 781px) {
	.vs-contact.wp-block-columns {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.vs-contact > .wp-block-column:first-child {
		display: contents;
	}

	.vs-contact > .wp-block-column:first-child > * {
		order: 1;
	}

	.vs-contact > .vs-contact__form {
		order: 2;
		margin-top: 1.2rem;
	}

	.vs-contact > .wp-block-column:first-child > .vs-rgpd {
		order: 3;
		margin-top: 1.6rem;
	}
}

/* ---------- Visor de imágenes a pantalla completa (vegasol.js) ---------- */
figure.vs-zoom img {
	cursor: zoom-in;
}
html.vs-lb-open,
html.vs-lb-open body {
	overflow: hidden;
}
.vs-lb {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: #061a22;
	opacity: 0;
	transition: opacity 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}
.vs-lb.is-open {
	opacity: 1;
}
.vs-lb[hidden] {
	display: none;
}
.vs-lb__stage {
	position: absolute;
	inset: 0;
	overflow: hidden;
	touch-action: none;
	cursor: zoom-in;
}
.vs-lb.is-zoomed .vs-lb__stage {
	cursor: grab;
}
.vs-lb__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	transform-origin: 50% 50%;
	user-select: none;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	will-change: transform;
}
.vs-lb__btn {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.4);
	color: #fff;
	cursor: pointer;
	transition: background 0.15s, opacity 0.15s;
}
.vs-lb__btn:hover,
.vs-lb__btn:focus-visible {
	background: rgba(0, 0, 0, 0.65);
}
.vs-lb__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}
.vs-lb__btn[hidden] {
	display: none;
}
.vs-lb__prev::before,
.vs-lb__next::before {
	content: "";
	width: 13px;
	height: 13px;
	border: solid #fff;
	border-width: 2.5px 2.5px 0 0;
}
.vs-lb__prev::before {
	transform: translateX(3px) rotate(-135deg);
}
.vs-lb__next::before {
	transform: translateX(-3px) rotate(45deg);
}
.vs-lb__close::before,
.vs-lb__close::after {
	content: "";
	position: absolute;
	width: 20px;
	height: 2.5px;
	border-radius: 2px;
	background: #fff;
	transform: rotate(45deg);
}
.vs-lb__close::after {
	transform: rotate(-45deg);
}
.vs-lb__close {
	top: max(12px, env(safe-area-inset-top));
	right: max(12px, env(safe-area-inset-right));
}
.vs-lb__prev,
.vs-lb__next {
	top: 50%;
	margin-top: -24px;
}
.vs-lb__prev {
	left: max(12px, env(safe-area-inset-left));
}
.vs-lb__next {
	right: max(12px, env(safe-area-inset-right));
}
.vs-lb__count {
	position: absolute;
	top: max(26px, calc(env(safe-area-inset-top) + 14px));
	left: 50%;
	transform: translateX(-50%);
	color: #fff;
	font-size: 14px;
	letter-spacing: 0.05em;
	opacity: 0.85;
	pointer-events: none;
}
.vs-lb__cap {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	margin: 0;
	padding: 14px 72px max(14px, env(safe-area-inset-bottom));
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.5));
	color: #fff;
	font-size: 14px;
	line-height: 1.4;
	text-align: center;
	pointer-events: none;
}
.vs-lb__cap:empty {
	display: none;
}
.vs-lb.is-zoomed .vs-lb__cap,
.vs-lb.is-zoomed .vs-lb__prev,
.vs-lb.is-zoomed .vs-lb__next,
.vs-lb.is-zoomed .vs-lb__count {
	opacity: 0;
	pointer-events: none;
}
@media (hover: none) {
	.vs-lb__prev,
	.vs-lb__next {
		width: 40px;
		height: 40px;
		margin-top: -20px;
		background: rgba(0, 0, 0, 0.3);
	}
}
