/**
 * Condominio Entre Viñas — sistema de diseño
 * Traducción del handoff de Claude Design (Entre Viñas.dc.html) a CSS de producción.
 *
 * Notas de implementación sobre Elementor 4 + Hello Elementor:
 *  - Los contenedores (.e-con) leen su espaciado de las variables --padding-*,
 *    --gap y --flex-direction. Aquí se escriben esas variables en lugar de las
 *    propiedades, para no depender del orden de las hojas de estilo.
 *  - .ev-c va en TODOS los contenedores y anula el padding (10px) y el gap (20px)
 *    que Elementor aplica por defecto. Debe quedar antes que el resto de reglas.
 *  - El markup optimizado de Elementor 4 no envuelve los widgets en
 *    .elementor-widget-container: la estructura es .ev-h1 > h1.elementor-heading-title.
 *    Las clases tipográficas van en el envoltorio y el interior hereda.
 */

:root {
	--ev-bg: #FDFCFA;
	--ev-ink: #241F26;
	--ev-plum: #5A4761;
	--ev-plum-dark: #3A2C42;
	--ev-gold: #A98455;
	--ev-body: #4A434A;
	--ev-muted: #7C7379;
	--ev-line: #E4DCD4;
	--ev-line-soft: #EFE8E1;
	--ev-line-mid: #C9BFC6;
	--ev-sand: #F7F3EE;
	--ev-sand-line: #DDD3CB;

	--ev-max: 1320px;
	--ev-gut: clamp(20px, 4vw, 56px);

	--ev-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--ev-sans: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ------------------------------------------------------- reset de contenedor */

.ev-c {
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	--gap: 0px;
}

/* El interior de los widgets hereda la tipografía del envoltorio, que es donde
   viven las clases ev-*. Sin esto, h1{font-size:2.5rem} de Hello gana. */
.ev-site .elementor-widget-heading .elementor-heading-title {
	font: inherit;
	letter-spacing: inherit;
	color: inherit;
	text-wrap: inherit;
	margin: 0;
}

.ev-site .elementor-widget-text-editor p {
	font: inherit;
	letter-spacing: inherit;
	color: inherit;
	text-wrap: inherit;
	margin: 0;
}

.ev-site .elementor-widget-text-editor p + p { margin-top: 20px; }

/* ------------------------------------------------------------------ base */

body.ev-site {
	background: var(--ev-bg);
	color: var(--ev-ink);
	font-family: var(--ev-sans);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

.ev-site img { display: block; max-width: 100%; }
.ev-site a { color: var(--ev-plum); text-decoration: none; }
.ev-site ::selection { background: var(--ev-plum); color: #fff; }

/* Imagen que rellena su contenedor. */
.ev-site .ev-cover { height: 100%; width: 100%; margin: 0; }
.ev-site .ev-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ------------------------------------------------------------- estructura */

.ev-sec {
	--padding-block-start: clamp(72px, 10vw, 140px);
	--padding-block-end: clamp(72px, 10vw, 140px);
	width: 100%;
}

.ev-sec--tight { --padding-block-start: clamp(64px, 8vw, 116px); --padding-block-end: clamp(64px, 8vw, 116px); }
.ev-sec--snug  { --padding-block-start: clamp(56px, 7vw, 104px); --padding-block-end: clamp(56px, 7vw, 104px); }
.ev-sec--cta   { --padding-block-start: clamp(56px, 7vw, 96px);  --padding-block-end: clamp(56px, 7vw, 96px); }
.ev-sec--flush { --padding-block-start: 0px; --padding-block-end: 0px; }

.ev-sec--otras {
	--padding-block-start: clamp(48px, 6vw, 80px);
	--padding-block-end: clamp(48px, 6vw, 80px);
	border-top: 1px solid var(--ev-line);
}

.ev-pt-0  { --padding-block-start: 0px; }
.ev-pb-0  { --padding-block-end: 0px; }
.ev-pb-xs { --padding-block-end: clamp(32px, 4vw, 52px); }
.ev-pb-sm { --padding-block-end: clamp(56px, 7vw, 96px); }
.ev-pb-md { --padding-block-end: clamp(64px, 8vw, 116px); }

.ev-sec--sand { background-color: var(--ev-sand); }
.ev-sec--ink  { background-color: var(--ev-ink); color: #fff; }
.ev-sec--plum { background-color: var(--ev-plum); color: #fff; }

.ev-wrap {
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	width: 100%;
	max-width: var(--ev-max);
	margin-inline: auto;
}

/* Rejilla por encima del flex de Elementor. */
.e-con.ev-grid, .ev-grid { display: grid !important; }

/* -------------------------------------------------------------- tipografía */

.ev-eyebrow {
	margin: 0;
	font-family: var(--ev-sans);
	font-size: 11.5px;
	letter-spacing: .28em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-gold);
	line-height: 1.4;
}

.ev-eyebrow--light { color: rgba(255, 255, 255, .9); font-weight: 400; }
.ev-eyebrow--dim { color: rgba(255, 255, 255, .55); }
.ev-eyebrow--tipo { font-size: 11px; letter-spacing: .22em; }

.ev-h1 {
	font-family: var(--ev-serif);
	font-weight: 300;
	font-size: clamp(40px, 6.4vw, 86px);
	line-height: 1.03;
	letter-spacing: -.015em;
	margin: 0;
	text-wrap: balance;
}

.ev-h1--page    { font-size: clamp(34px, 5vw, 68px);   line-height: 1.06; letter-spacing: 0; }
.ev-h1--casa    { font-size: clamp(40px, 6vw, 84px);   line-height: 1;    letter-spacing: 0; }
.ev-h1--seccion { font-size: clamp(34px, 4.6vw, 64px); line-height: 1.07; letter-spacing: 0; }
.ev-h1--contacto{ font-size: clamp(34px, 4.2vw, 58px); line-height: 1.06; letter-spacing: 0; }

.ev-h2 {
	font-family: var(--ev-serif);
	font-weight: 300;
	font-size: clamp(32px, 3.6vw, 52px);
	line-height: 1.12;
	letter-spacing: -.01em;
	margin: 0;
	color: var(--ev-ink);
	text-wrap: balance;
}

.ev-h2--sm   { font-size: clamp(30px, 3.4vw, 48px); letter-spacing: 0; }
.ev-h2--xs   { font-size: clamp(28px, 3vw, 42px);   line-height: 1.14; letter-spacing: 0; }
.ev-h2--md   { font-size: clamp(28px, 3.2vw, 46px); line-height: 1.14; letter-spacing: 0; }
.ev-h2--mini { font-size: clamp(26px, 2.8vw, 38px); letter-spacing: 0; }
.ev-h2--tipo { font-size: clamp(32px, 3.4vw, 48px); line-height: 1;    letter-spacing: 0; }
.ev-h2--light { color: #fff; }

.ev-lead {
	font-family: var(--ev-sans);
	font-size: 16.5px;
	line-height: 1.72;
	color: var(--ev-body);
	font-weight: 300;
	text-wrap: pretty;
}

.ev-lead--hero {
	font-size: clamp(15px, 1.15vw, 17.5px);
	line-height: 1.65;
	color: rgba(255, 255, 255, .82);
}

.ev-lead--ink { font-size: 16px; line-height: 1.7; color: rgba(255, 255, 255, .72); }
.ev-lead--sm { font-size: 15.5px; line-height: 1.7; }
.ev-lead--casa { font-size: 16px; line-height: 1.7; }

.ev-nota, .ev-nota p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--ev-muted);
	font-weight: 300;
}

.ev-site .ev-max-15 { max-width: 15em; }
.ev-site .ev-max-16 { max-width: 16em; }
.ev-site .ev-max-18 { max-width: 18em; }
.ev-site .ev-max-20 { max-width: 20em; }
.ev-site .ev-max-22 { max-width: 22em; }
.ev-site .ev-max-26 { max-width: 26em; }
.ev-site .ev-max-30 { max-width: 30em; }
.ev-site .ev-max-32 { max-width: 32em; }
.ev-site .ev-max-34 { max-width: 34em; }
.ev-site .ev-max-44 { max-width: 44em; }

/* ----------------------------------------------------------------- botones */

.ev-site .ev-btn .elementor-button,
.ev-site a.ev-btn {
	display: inline-block;
	border: 0;
	border-radius: 0;
	padding: 16px 32px;
	font-family: var(--ev-sans);
	font-size: 12.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.ev-site .ev-btn--sm .elementor-button { padding: 15px 30px; }

.ev-site .ev-btn--plum .elementor-button { background-color: var(--ev-plum); color: var(--ev-bg); }
.ev-site .ev-btn--plum .elementor-button:hover,
.ev-site .ev-btn--plum .elementor-button:focus { background-color: var(--ev-plum-dark); color: var(--ev-bg); }

.ev-site .ev-btn--light .elementor-button { background-color: var(--ev-bg); color: var(--ev-ink); }
.ev-site .ev-btn--light .elementor-button:hover,
.ev-site .ev-btn--light .elementor-button:focus { background-color: var(--ev-plum); color: #fff; }

.ev-site .ev-btn--light-ink .elementor-button:hover,
.ev-site .ev-btn--light-ink .elementor-button:focus { background-color: var(--ev-ink); color: #fff; }

.ev-site .ev-btn--ghost .elementor-button {
	background-color: transparent;
	border: 1px solid rgba(255, 255, 255, .4);
	color: #fff;
}

.ev-site .ev-btn--ghost .elementor-button:hover,
.ev-site .ev-btn--ghost .elementor-button:focus {
	border-color: #fff;
	background-color: rgba(255, 255, 255, .1);
	color: #fff;
}

.ev-site .ev-link .elementor-button {
	display: inline-block;
	padding: 0 0 5px;
	background-color: transparent;
	border: 0;
	border-bottom: 1px solid var(--ev-plum);
	border-radius: 0;
	font-family: var(--ev-sans);
	font-size: 12.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-plum);
	transition: color .25s ease, border-color .25s ease;
}

.ev-site .ev-link .elementor-button:hover {
	background-color: transparent;
	color: var(--ev-ink);
	border-bottom-color: var(--ev-ink);
}

.ev-site .ev-link--soft .elementor-button { border-bottom-color: var(--ev-line-mid); }

.ev-site .ev-link--light .elementor-button { color: #fff; border-bottom-color: rgba(255, 255, 255, .45); }
.ev-site .ev-link--light .elementor-button:hover { color: #fff; border-bottom-color: #fff; }

/* -------------------------------------------------------------------- hero */

.ev-hero {
	--justify-content: flex-end;
	position: relative;
	justify-content: flex-end;
	overflow: hidden;
	background-color: var(--ev-ink);
	min-height: min(86vh, 760px);
}

.ev-hero--page { min-height: min(58vh, 480px); }
.ev-hero--casa { min-height: min(70vh, 600px); }

.ev-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(to right, rgba(26, 20, 28, .86) 0%, rgba(26, 20, 28, .62) 42%, rgba(26, 20, 28, .14) 78%, rgba(26, 20, 28, 0) 100%),
		linear-gradient(to top, rgba(26, 20, 28, .9) 0%, rgba(26, 20, 28, .48) 52%, rgba(26, 20, 28, .3) 100%);
}

.ev-hero--page::before, .ev-hero--casa::before {
	background:
		linear-gradient(to right, rgba(26, 20, 28, .86) 0%, rgba(26, 20, 28, .6) 45%, rgba(26, 20, 28, .14) 80%, rgba(26, 20, 28, 0) 100%),
		linear-gradient(to top, rgba(26, 20, 28, .88), rgba(26, 20, 28, .32));
}

.ev-hero__inner {
	--padding-block-start: clamp(56px, 9vh, 120px);
	--padding-block-end: clamp(40px, 6vh, 64px);
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--ev-max);
	margin-inline: auto;
	color: #fff;
}

.ev-hero--page .ev-hero__inner, .ev-hero--casa .ev-hero__inner {
	--padding-block-start: clamp(48px, 8vh, 96px);
	--padding-block-end: clamp(36px, 5vh, 56px);
}

.ev-hero__inner .ev-h1, .ev-hero__inner .ev-h2 { color: #fff; }

.ev-hero__acciones {
	--flex-direction: row;
	--flex-wrap: wrap;
	--gap: 14px;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 14px;
}

.ev-site .ev-hero__acciones > * { width: auto; --width: auto; }

/* Ojo: la clase va en el propio <a>, no en un envoltorio. Sobre el hero oscuro
   necesita contorno propio: como texto plano se perdía contra la foto. */
.ev-site a.ev-volver,
.ev-site .ev-volver a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid rgba(255, 255, 255, .5);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	font-weight: 500;
	color: #fff;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.ev-site a.ev-volver:hover,
.ev-site a.ev-volver:focus-visible,
.ev-site .ev-volver a:hover {
	background-color: #fff;
	border-color: #fff;
	color: var(--ev-ink);
}

/* ---------------------------------------------------------- barra de datos */

.ev-stats {
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	/* Sin separación entre celdas: así los bordes forman una cruz continua.
	   Elementor usa --row-gap/--column-gap, no el --gap que fija .ev-c. */
	--row-gap: 0px;
	--column-gap: 0px;
	gap: 0;
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	max-width: var(--ev-max);
	margin-inline: auto;
	width: 100%;
}

.ev-stats--casa { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

.ev-stats__item {
	--padding-block-start: 34px;
	--padding-block-end: 34px;
	--padding-inline-end: clamp(16px, 2vw, 28px);
	--gap: 8px;
	gap: 8px;
	border-right: 1px solid rgba(255, 255, 255, .16);
}

.ev-stats__item:last-child { border-right: 0; }
.ev-stats__item + .ev-stats__item { --padding-inline-start: clamp(20px, 3vw, 40px); }

.ev-stats--casa .ev-stats__item {
	--padding-block-start: 30px;
	--padding-block-end: 30px;
	border-right: 0;
}

.ev-stats--casa .ev-stats__item + .ev-stats__item {
	border-left: 1px solid rgba(255, 255, 255, .16);
	--padding-inline-start: clamp(16px, 2.4vw, 34px);
}

.ev-stats__num {
	font-family: var(--ev-serif);
	font-size: 38px;
	font-weight: 300;
	line-height: 1;
	color: #fff;
	margin: 0;
}

.ev-stats--casa .ev-stats__num { font-size: 34px; }

.ev-stats__label {
	margin: 0;
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .68);
	line-height: 1.4;
	font-family: var(--ev-sans);
	font-weight: 400;
}

.ev-stats--casa .ev-stats__label { font-size: 11px; color: rgba(255, 255, 255, .66); }

.ev-cifras {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 24px;
	margin-top: 8px;
	padding-top: 26px;
	border-top: 1px solid var(--ev-sand-line);
}

.ev-cifras__num { font-family: var(--ev-serif); font-size: 32px; font-weight: 300; color: var(--ev-plum); line-height: 1; }
.ev-cifras__label { margin-top: 6px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ev-muted); }

/* ------------------------------------------------------------------ rejillas */

.ev-cols-2 {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: clamp(40px, 6vw, 88px);
	align-items: start;
}

.ev-cols-2--mid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(36px, 5vw, 80px); }
.ev-cols-2--center { align-items: center; }

.ev-encabezado {
	--flex-direction: row;
	--flex-wrap: wrap;
	--gap: 24px;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(40px, 5vw, 64px);
}

.ev-site .ev-encabezado > * { width: auto; --width: auto; max-width: 100%; }

.ev-encabezado--snug { margin-bottom: clamp(32px, 4vw, 52px); }
.ev-encabezado--tight { margin-bottom: clamp(28px, 3.4vw, 44px); }

/* --------------------------------------------------- tarjetas de tipología */

.ev-cards {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(20px, 2.4vw, 34px);
}

.ev-card {
	background-color: var(--ev-bg);
	color: var(--ev-ink);
	height: 100%;
	transition: transform .3s ease, box-shadow .3s ease;
}

.ev-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -28px rgba(36, 31, 38, .55); }

.ev-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background-color: var(--ev-line);
}

.ev-card__media img { transition: transform .6s ease; }
.ev-card:hover .ev-card__media img { transform: scale(1.03); }

.ev-site .ev-card__badge-w { position: absolute; top: 16px; left: 16px; z-index: 2; width: auto; }

.ev-card__badge {
	display: inline-block;
	padding: 6px 12px;
	background: rgba(253, 252, 250, .92);
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-plum);
}

.ev-card__body {
	--padding-block-start: 26px;
	--padding-block-end: 30px;
	--padding-inline-start: 26px;
	--padding-inline-end: 26px;
	--gap: 12px;
	gap: 12px;
	flex: 1;
}

.ev-card__title {
	margin: 0;
	font-family: var(--ev-serif);
	font-size: 31px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.005em;
	color: var(--ev-ink);
}

.ev-card__text {
	font-family: var(--ev-sans);
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ev-muted);
	font-weight: 300;
	flex: 1;
}

.ev-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	padding-top: 14px;
	border-top: 1px solid var(--ev-line);
	font-size: 12.5px;
	letter-spacing: .05em;
	color: var(--ev-ink);
	font-weight: 400;
	font-family: var(--ev-sans);
}

.ev-sep { color: var(--ev-line-mid); }

/* ----------------------------------------------------- rejilla hairline */

.ev-hair {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background-color: var(--ev-line);
	border: 1px solid var(--ev-line);
}

.ev-hair--sm { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ev-hair__item {
	--padding-block-start: 32px;
	--padding-block-end: 36px;
	--padding-inline-start: 30px;
	--padding-inline-end: 30px;
	--gap: 12px;
	gap: 12px;
	background-color: var(--ev-bg);
}

.ev-hair--sm .ev-hair__item {
	--padding-block-start: 26px;
	--padding-block-end: 30px;
	--padding-inline-start: 24px;
	--padding-inline-end: 24px;
	--gap: 10px;
	gap: 10px;
}

.ev-hair__num { font-family: var(--ev-serif); font-size: 15px; color: var(--ev-gold); letter-spacing: .1em; margin: 0; font-weight: 400; }
.ev-hair__title { margin: 0; font-family: var(--ev-sans); font-size: 15px; font-weight: 500; letter-spacing: .04em; color: var(--ev-ink); line-height: 1.4; }
.ev-hair--sm .ev-hair__title { font-size: 14.5px; letter-spacing: 0; }
.ev-hair__text { font-family: var(--ev-sans); font-size: 14.5px; line-height: 1.65; color: var(--ev-muted); font-weight: 300; }
.ev-hair--sm .ev-hair__text { font-size: 14px; }

/* ------------------------------------------------------------ tiras de fotos */

.ev-tira {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: clamp(12px, 1.4vw, 20px);
}

.ev-tira--ancha { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(14px, 1.8vw, 24px); }
.ev-tira--media { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.ev-foto { overflow: hidden; background-color: var(--ev-line); }

.ev-foto--3-4 { aspect-ratio: 3 / 4; }
.ev-foto--4-5 { aspect-ratio: 4 / 5; }
.ev-foto--4-3 { aspect-ratio: 4 / 3; }
.ev-foto--16-9 { aspect-ratio: 16 / 9; }
.ev-foto--3-2 { aspect-ratio: 3 / 2; }
.ev-foto--1-1 { aspect-ratio: 1 / 1; }
.ev-foto--ink { background-color: var(--ev-plum-dark); }

.ev-mosaico { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }

/* -------------------------------------------------- banda imagen + texto */

.ev-split {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	width: 100%;
}

.ev-split__media {
	min-height: clamp(340px, 42vw, 560px);
	background-color: var(--ev-line);
	overflow: hidden;
}

.ev-split__texto {
	--padding-block-start: clamp(48px, 6vw, 92px);
	--padding-block-end: clamp(48px, 6vw, 92px);
	--padding-inline-start: clamp(28px, 5vw, 84px);
	--padding-inline-end: clamp(28px, 5vw, 84px);
	--justify-content: center;
	--gap: 24px;
	gap: 24px;
	justify-content: center;
	background-color: var(--ev-ink);
	color: #fff;
}

/* ---------------------------------------------------- tabla comparativa */

.ev-tabla-scroll { width: 100%; overflow-x: auto; }

.ev-tabla {
	width: 100%;
	min-width: 760px;
	border-collapse: collapse;
	font-family: var(--ev-sans);
	font-size: 14.5px;
}

.ev-site .ev-tabla th {
	text-align: left;
	padding: 0 20px 14px 0;
	border: 0;
	border-bottom: 1px solid var(--ev-ink);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-ink);
	background: transparent;
}

.ev-site .ev-tabla td {
	padding: 20px 20px 20px 0;
	border: 0;
	border-bottom: 1px solid var(--ev-line);
	color: var(--ev-body);
	font-weight: 300;
	background: transparent;
}

.ev-site .ev-tabla td.ev-tabla__nombre { font-family: var(--ev-serif); font-size: 24px; color: var(--ev-ink); font-weight: 400; }
.ev-site .ev-tabla td.ev-tabla__vacio { color: var(--ev-line-mid); }
.ev-site .ev-tabla td.ev-tabla__accion { padding-right: 0; text-align: right; }

.ev-tabla__accion a {
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-plum);
	white-space: nowrap;
}

.ev-tabla__accion a:hover { color: var(--ev-ink); }

/* -------------------------------------------------- filas de tipologías */

.ev-fila {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	border-top: 1px solid var(--ev-line);
	color: var(--ev-ink);
	transition: background-color .3s ease;
}

.ev-fila:last-child { border-bottom: 1px solid var(--ev-line); }
.ev-fila:hover { background-color: var(--ev-sand); }

.ev-fila__media {
	min-height: clamp(260px, 30vw, 420px);
	background-color: var(--ev-line);
	overflow: hidden;
}

.ev-fila--invertida .ev-fila__media { order: 2; }

.ev-fila__texto {
	--padding-block-start: clamp(32px, 4vw, 64px);
	--padding-block-end: clamp(32px, 4vw, 64px);
	--padding-inline-start: clamp(32px, 4vw, 64px);
	--padding-inline-end: clamp(32px, 4vw, 64px);
	--justify-content: center;
	--gap: 16px;
	gap: 16px;
	justify-content: center;
}

.ev-fila__eyebrow {
	font-family: var(--ev-sans);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--ev-gold);
	font-weight: 500;
	margin: 0;
	line-height: 1.4;
}

.ev-fila__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	font-size: 13.5px;
	color: var(--ev-ink);
	letter-spacing: .04em;
	font-weight: 400;
	font-family: var(--ev-sans);
}

@media (max-width: 767px) {
	.ev-fila--invertida .ev-fila__media { order: 0; }
}

/* ------------------------------------------------- galería de la ficha */

.ev-galeria__principal { aspect-ratio: 16 / 9; background: var(--ev-line); overflow: hidden; margin-bottom: 14px; }
.ev-galeria__principal img { width: 100%; height: 100%; object-fit: cover; }

.ev-galeria__miniaturas { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }

.ev-galeria__mini {
	aspect-ratio: 4 / 3;
	line-height: 0;
	overflow: hidden;
	background: var(--ev-line);
	display: block;
	border: 0;
	padding: 0;
	cursor: pointer;
	outline: 1px solid transparent;
	outline-offset: -1px;
	transition: outline-color .25s ease;
}

.ev-galeria__mini img { width: 100%; height: 100%; object-fit: cover; opacity: .62; transition: opacity .25s ease; }
.ev-galeria__mini:hover img { opacity: .85; }
.ev-galeria__mini[aria-current="true"] { outline-color: var(--ev-plum); }
.ev-galeria__mini[aria-current="true"] img { opacity: 1; }

/* --------------------------------------------------------------- plantas */

.ev-plantas .ev-encabezado { display: flex; }
.ev-plantas__tabs { display: flex; flex-wrap: wrap; gap: 8px; }

.ev-plantas__tab {
	padding: 11px 20px;
	font-family: var(--ev-sans);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 500;
	border: 1px solid var(--ev-line-mid);
	background: transparent;
	color: var(--ev-ink);
	white-space: nowrap;
	cursor: pointer;
	border-radius: 0;
	transition: background-color .25s ease, color .25s ease;
}

.ev-plantas__tab:hover { background: rgba(90, 71, 97, .08); }
.ev-plantas__tab[aria-selected="true"] { background: var(--ev-plum); color: var(--ev-bg); border-color: var(--ev-plum); }

.ev-plantas__lienzo { background: var(--ev-bg); padding: clamp(16px, 3vw, 44px); border: 1px solid var(--ev-line); }
.ev-plantas__lienzo img { width: 100%; height: auto; }

/* -------------------------------------------------------- otras tipologías */

.ev-otras {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: clamp(14px, 1.8vw, 24px);
}

.ev-otra { --gap: 12px; gap: 12px; color: var(--ev-ink); }
.ev-otra:hover .ev-otra__nombre { color: var(--ev-plum); }
.ev-otra__nombre { font-family: var(--ev-serif); font-size: 23px; line-height: 1.1; margin: 0; font-weight: 400; transition: color .25s ease; }
.ev-otra__meta { margin: 5px 0 0; font-size: 12.5px; color: var(--ev-muted); font-weight: 300; font-family: var(--ev-sans); }

/* --------------------------------------------------------------- contacto */

.ev-datos {
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: var(--ev-line);
	border-top: 1px solid var(--ev-line);
	border-bottom: 1px solid var(--ev-line);
	margin-top: 8px;
}

.ev-datos__item { background: var(--ev-bg); padding: 22px 0; }
.ev-datos__label { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ev-muted); margin-bottom: 8px; font-family: var(--ev-sans); }
.ev-datos__valor { font-family: var(--ev-serif); font-size: 27px; color: var(--ev-plum); line-height: 1; }
.ev-datos__valor:hover { color: var(--ev-ink); }

.ev-formulario {
	--padding-block-start: clamp(28px, 3.4vw, 48px);
	--padding-block-end: clamp(28px, 3.4vw, 48px);
	--padding-inline-start: clamp(28px, 3.4vw, 48px);
	--padding-inline-end: clamp(28px, 3.4vw, 48px);
	--gap: 20px;
	gap: 20px;
	background-color: var(--ev-sand);
}

.ev-formulario__titulo {
	margin: 0;
	font-family: var(--ev-sans);
	font-size: 13px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ev-ink);
	line-height: 1.4;
}

.ev-hubspot {
	position: relative;
	min-height: 320px;
}

/* El formulario llega en un iframe de otro dominio, así que su interior no se
   puede tocar. Esta franja va anclada al borde inferior —donde HubSpot pone su
   bloque de marca— y lo cubre con el mismo fondo del panel. Al ir anclada abajo
   sigue sola cualquier cambio de altura del iframe. */
.ev-hubspot::after {
	content: '';
	position: absolute;
	left: -4px;
	right: -4px;
	bottom: -4px;
	height: 84px;
	background: var(--ev-sand);
	pointer-events: none;
}

.ev-hubspot__respaldo { display: none; }

.ev-hubspot--sin-formulario::after { display: none; }

.ev-hubspot--sin-formulario .hs-form-frame { display: none; }

.ev-hubspot--sin-formulario .ev-hubspot__respaldo {
	display: block;
	font-family: var(--ev-sans);
	font-size: 15px;
	line-height: 1.7;
	color: var(--ev-body);
	font-weight: 300;
}

.ev-hubspot__respaldo a {
	color: var(--ev-plum);
	border-bottom: 1px solid var(--ev-line-mid);
}

.ev-hubspot__respaldo a:hover { color: var(--ev-ink); border-bottom-color: var(--ev-ink); }
.ev-hubspot .hs-form-frame, .ev-hubspot iframe { width: 100% !important; max-width: 100% !important; }

/* ------------------------------------------------------------- banda CTA */

.ev-cta {
	--flex-direction: row;
	--flex-wrap: wrap;
	--gap: 32px;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	width: 100%;
}

.ev-site .ev-cta__texto { --gap: 16px; gap: 16px; width: auto; --width: auto; flex: 1 1 340px; }

.ev-cta__acciones {
	--flex-direction: row;
	--flex-wrap: wrap;
	--gap: 12px;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 12px;
	width: auto;
	--width: auto;
	flex: 0 1 auto;
}

.ev-site .ev-cta__acciones > * { width: auto; --width: auto; }

/* ------------------------------------------------------- header y footer */

.ev-header {
	position: sticky;
	top: 0;
	z-index: 99;
	background-color: rgba(253, 252, 250, .94);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--ev-line);
	width: 100%;
}

.ev-header__inner {
	--flex-direction: row;
	--flex-wrap: nowrap;
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	--gap: 24px;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: var(--ev-max);
	margin-inline: auto;
	min-height: 80px;
	width: 100%;
}

.ev-site .ev-header__inner > * { width: auto; --width: auto; flex: 0 0 auto; }

.ev-site .ev-logo { width: auto; }
.ev-site .ev-logo img { height: clamp(34px, 7vw, 44px); width: auto; }

.ev-header__nav {
	--flex-direction: row;
	--flex-wrap: nowrap;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	width: auto;
	--width: auto;
}

.ev-site .ev-nav .elementor-nav-menu .elementor-item {
	font-family: var(--ev-sans);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 400;
	color: var(--ev-ink);
	padding: 6px 0;
	position: relative;
	fill: currentColor;
}

.ev-site .ev-nav .elementor-nav-menu > li:not(:last-child) { margin-inline-end: clamp(18px, 2.4vw, 38px); }

.ev-site .ev-nav .elementor-nav-menu--main .elementor-item:hover,
.ev-site .ev-nav .elementor-nav-menu--main .elementor-item:focus,
.ev-site .ev-nav .elementor-nav-menu--main .elementor-item.highlighted { color: var(--ev-plum); background-color: transparent; }

.ev-site .ev-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--ev-ink); background-color: transparent; }

.ev-site .ev-nav .elementor-nav-menu--main li > a.elementor-item-active::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--ev-plum);
}

/* El último ítem del menú es el botón «Solicitar información» del diseño. */
.ev-site .ev-nav .elementor-nav-menu--main li.ev-menu-cta > a.elementor-item {
	background-color: var(--ev-plum);
	color: var(--ev-bg);
	padding: 13px 24px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .16em;
	white-space: nowrap;
}

.ev-site .ev-nav .elementor-nav-menu--main li.ev-menu-cta > a.elementor-item:hover,
.ev-site .ev-nav .elementor-nav-menu--main li.ev-menu-cta > a.elementor-item:focus,
.ev-site .ev-nav .elementor-nav-menu--main li.ev-menu-cta > a.elementor-item.elementor-item-active {
	background-color: var(--ev-plum-dark);
	color: var(--ev-bg);
}

.ev-site .ev-nav .elementor-nav-menu--main li.ev-menu-cta > a.elementor-item-active::after { display: none; }

.ev-site .ev-nav nav.elementor-nav-menu--dropdown { background-color: var(--ev-bg); border-top: 1px solid var(--ev-line); }

.ev-site .ev-nav nav.elementor-nav-menu--dropdown > ul > li > a.elementor-item {
	padding: 19px var(--ev-gut);
	border-bottom: 1px solid var(--ev-line-soft);
	font-size: 14px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ev-ink);
}

.ev-site .ev-nav nav.elementor-nav-menu--dropdown a.elementor-item:hover,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown a.elementor-item:focus,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown a.elementor-item.highlighted,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active {
	background-color: transparent;
	color: var(--ev-plum);
}

.ev-site .ev-nav nav.elementor-nav-menu--dropdown li.ev-menu-cta a.elementor-item {
	margin: 20px var(--ev-gut) 26px;
	padding: 18px 24px;
	background-color: var(--ev-plum);
	color: var(--ev-bg);
	border-bottom: 0;
	justify-content: center;
	text-align: center;
	font-size: 12.5px;
	letter-spacing: .16em;
}

.ev-site .ev-nav div.elementor-menu-toggle {
	color: var(--ev-ink);
	background-color: transparent;
	padding: 14px;
	margin-right: -14px;
}

.ev-site .ev-nav div.elementor-menu-toggle svg { width: 26px; height: 26px; fill: var(--ev-ink); }

.ev-footer { background-color: var(--ev-ink); color: rgba(255, 255, 255, .62); width: 100%; }

.ev-footer__cols {
	--padding-block-start: clamp(48px, 6vw, 80px);
	--padding-block-end: 32px;
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	max-width: var(--ev-max);
	margin-inline: auto;
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: clamp(32px, 4vw, 56px);
	width: 100%;
}

.ev-footer__marca { --gap: 20px; gap: 20px; }
.ev-site .ev-footer__marca img { height: 52px; width: auto; }

.ev-footer__texto {
	max-width: 22em;
	font-family: var(--ev-sans);
	font-size: 14px;
	line-height: 1.7;
	font-weight: 300;
	color: rgba(255, 255, 255, .62);
}

.ev-footer__col { --gap: 14px; gap: 14px; }

.ev-footer__titulo {
	margin: 0;
	font-family: var(--ev-sans);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .4);
	font-weight: 400;
	line-height: 1.4;
}

.ev-footer__enlaces { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ev-footer__enlaces a { font-size: 14.5px; color: rgba(255, 255, 255, .72); font-weight: 300; transition: color .2s ease; }
.ev-footer__enlaces a:hover { color: #fff; }

.ev-footer__legal {
	--padding-block-start: 24px;
	--padding-block-end: 40px;
	--padding-inline-start: var(--ev-gut);
	--padding-inline-end: var(--ev-gut);
	max-width: var(--ev-max);
	margin-inline: auto;
	border-top: 1px solid rgba(255, 255, 255, .12);
	width: 100%;
}

.ev-footer__legal-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	font-size: 12.5px;
	color: rgba(255, 255, 255, .42);
	font-weight: 300;
	font-family: var(--ev-sans);
}

/* ------------------------------------------------------------- utilidades */

.ev-gap-0  { --gap: 0px;  gap: 0; }
.ev-gap-12 { --gap: 12px; gap: 12px; }
.ev-gap-14 { --gap: 14px; gap: 14px; }
.ev-gap-16 { --gap: 16px; gap: 16px; }
.ev-gap-20 { --gap: 20px; gap: 20px; }
.ev-gap-22 { --gap: 22px; gap: 22px; }
.ev-gap-24 { --gap: 24px; gap: 24px; }
.ev-gap-26 { --gap: 26px; gap: 26px; }

.ev-site .ev-start { align-self: flex-start; width: auto; --width: auto; }
.ev-site .ev-mt-6  { margin-top: 6px; }
.ev-site .ev-mt-8  { margin-top: 8px; }
.ev-site .ev-mt-14 { margin-top: 14px; }
.ev-site .ev-mt-18 { margin-top: 18px; }
.ev-site .ev-mt-22 { margin-top: 22px; }
.ev-site .ev-mt-26 { margin-top: 26px; }
.ev-site .ev-mt-38 { margin-top: 38px; }
.ev-site .ev-mb-20 { margin-bottom: 20px; }
.ev-site .ev-mb-22 { margin-bottom: 22px; }
.ev-site .ev-mb-26 { margin-bottom: 26px; }
.ev-site .ev-mb-lg { margin-bottom: clamp(40px, 5vw, 64px); }
.ev-site .ev-mb-md { margin-bottom: clamp(36px, 4.5vw, 60px); }
.ev-site .ev-mb-sm { margin-bottom: clamp(32px, 4vw, 52px); }
.ev-site .ev-mb-xs { margin-bottom: clamp(28px, 3.4vw, 44px); }

/* ------------------------------------------------------------------------
   Elementor declara `.e-con.e-flex { --flex-direction: column }` con
   especificidad (0,2,0). Estas reglas repiten los selectores con `.e-con`
   delante para poder ganar la cascada en los contenedores en fila.
   ------------------------------------------------------------------------ */

.e-con.ev-header__inner {
	--flex-direction: row;
	--flex-wrap: nowrap;
	--justify-content: space-between;
	--align-items: center;
}

.e-con.ev-header__nav {
	--flex-direction: row;
	--flex-wrap: nowrap;
	--align-items: center;
	--justify-content: flex-end;
}

.e-con.ev-hero__acciones {
	--flex-direction: row;
	--flex-wrap: wrap;
	--justify-content: flex-start;
	--align-items: center;
}

.e-con.ev-encabezado {
	--flex-direction: row;
	--flex-wrap: wrap;
	--justify-content: space-between;
	--align-items: flex-end;
}

.e-con.ev-cta {
	--flex-direction: row;
	--flex-wrap: wrap;
	--justify-content: space-between;
	--align-items: center;
}

.e-con.ev-cta__acciones {
	--flex-direction: row;
	--flex-wrap: wrap;
	--justify-content: flex-start;
	--align-items: center;
}

.e-con.ev-hero { --justify-content: flex-end; }
.e-con.ev-split__texto { --justify-content: center; }
.e-con.ev-fila__texto { --justify-content: center; }

@media (max-width: 899px) {
	.ev-hero { min-height: min(78vh, 640px); }
	.ev-split__texto {
		--padding-inline-start: var(--ev-gut);
		--padding-inline-end: var(--ev-gut);
	}
}

/* Las seis terminaciones se reparten en 3 · 2 · 1 columnas. */
@media (max-width: 1024px) {
	.ev-hair, .ev-hair--sm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
	.ev-hair, .ev-hair--sm { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------- marca (H1 de la portada) */

.ev-marca {
	margin: 0;
	font-family: var(--ev-sans);
	font-size: 12px;
	letter-spacing: .3em;
	text-transform: uppercase;
	font-weight: 500;
	color: #fff;
	line-height: 1.4;
}

/* ------------------------------------------------------- tarjetas clickeables */

/* El control «link» del contenedor no genera ningún <a> en Elementor 4, así que
   el enlace se añade como una capa que cubre la tarjeta entera. */
.ev-clic { position: relative; }

/* Elementor pone position:relative en el envoltorio del widget, así que es ese
   envoltorio —y no el <a>— el que tiene que estirarse sobre la tarjeta. */
.ev-site .ev-cubre-w {
	position: absolute;
	inset: 0;
	z-index: 5;
	width: auto;
	height: auto;
	margin: 0;
}

.ev-cubre {
	position: absolute;
	inset: 0;
	display: block;
	border: 0;
	background: transparent;
}

.ev-cubre:focus-visible { outline: 2px solid var(--ev-plum); outline-offset: -4px; }

/* Lo que va por encima de la capa sigue siendo clickeable por su cuenta. */
.ev-clic .elementor-widget-button,
.ev-clic .ev-tabla__accion { position: relative; z-index: 6; }

/* --------------------------------------------------------------- lightbox */

.ev-galeria__zoom,
.ev-plantas__zoom {
	display: block;
	cursor: zoom-in;
	height: 100%;
}

.ev-galeria__zoom img { width: 100%; height: 100%; object-fit: cover; }

/* ----------------------------------------------------------------- videos */

.ev-videos {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 28px);
}

.ev-video__item { --gap: 14px; gap: 14px; }

.ev-video {
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	background-color: var(--ev-ink);
	gap: 0;
}

.ev-site .ev-video .elementor-widget-video,
.ev-site .ev-video .elementor-wrapper,
.ev-site .ev-video .elementor-video-container,
.ev-site .ev-video .elementor-fit-aspect-ratio { height: 100%; width: 100%; }

.ev-site .ev-video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ev-video__pie {
	margin: 0;
	font-family: var(--ev-sans);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--ev-muted);
	font-weight: 300;
	letter-spacing: .02em;
}

@media (max-width: 860px) {
	.ev-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	/* Se mantiene el 9:16 del original: recortar cortaría los subtítulos. */
	.ev-videos { grid-template-columns: minmax(0, 1fr); }
	.ev-video { max-width: 400px; margin-inline: auto; }
}

/* ----------------------------------------------------- pie legal del footer */

.ev-footer__legal-inner {
	font-family: var(--ev-sans);
	font-size: 12.5px;
	line-height: 1.7;
	color: rgba(255, 255, 255, .42);
	font-weight: 300;
}

.ev-footer__legal-inner a {
	color: rgba(255, 255, 255, .68);
	border-bottom: 1px solid rgba(255, 255, 255, .28);
	transition: color .2s ease, border-color .2s ease;
}

.ev-footer__legal-inner a:hover { color: #fff; border-bottom-color: #fff; }

/* ------------------------------------------- mosaico de la casa piloto

   Dos de las tomas son horizontales (2400x1600) y el resto verticales. Metidas
   todas en la misma caja 3:4 se recortaba más de la mitad del ancho de las
   horizontales, así que estas ocupan dos columnas y conservan su proporción.  */

.ev-mosaico-piloto {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 20px);
	align-items: stretch;
}

.ev-mosaico-piloto .ev-foto--3-4 { aspect-ratio: 3 / 4; }

.ev-mosaico-piloto .ev-foto--ancha {
	grid-column: span 2;
	aspect-ratio: auto;
}

@media (max-width: 900px) {
	.ev-mosaico-piloto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ev-mosaico-piloto .ev-foto--ancha { grid-column: span 2; aspect-ratio: 3 / 2; }
}

@media (max-width: 520px) {
	.ev-mosaico-piloto { grid-template-columns: minmax(0, 1fr); }
	.ev-mosaico-piloto .ev-foto--ancha { grid-column: span 1; }
}

/* ------------------------------------------------- video a pantalla completa

   En pantalla completa el <video> pasa a ocupar una pantalla 16:9; con
   object-fit:cover el vertical quedaba recortado. Con contain se respeta el 9:16. */

.ev-site .ev-video video:fullscreen,
.ev-site .ev-video video:-webkit-full-screen {
	object-fit: contain;
	background: #000;
}

video:fullscreen, video:-webkit-full-screen { object-fit: contain; background: #000; }

/* Enlaces ocultos que forman el grupo del visor en las fichas de casa. */
/* Marcador invisible con el nombre de la casa, que el JS usa para el mensaje
   de WhatsApp. No debe ocupar espacio ni generar hueco entre secciones. */
.ev-ctx-wrap {
	display: none !important;
}

/* ------------------------------------------------- submenú de «Las casas»

   Ojo: el <ul class="sub-menu"> también lleva la clase
   elementor-nav-menu--dropdown, la misma del menú móvil. Por eso las reglas de
   móvil van sobre `nav.elementor-nav-menu--dropdown` y estas sobre `ul.sub-menu`. */

.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu.elementor-nav-menu--dropdown {
	background-color: var(--ev-bg);
	border: 1px solid var(--ev-line);
	border-radius: 0;
	padding: 6px 0;
	min-width: 210px;
	box-shadow: 0 18px 40px -26px rgba(36, 31, 38, .5);
}

.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item {
	padding: 11px 22px;
	font-family: var(--ev-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ev-ink);
	white-space: nowrap;
	border: 0;
}

.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover,
.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:focus,
.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item.highlighted {
	background-color: var(--ev-sand);
	color: var(--ev-plum);
}

.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item.elementor-item-active {
	background-color: var(--ev-sand);
	color: var(--ev-plum);
}

/* El subrayado es solo para el nivel principal. */
.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-item-active::after { display: none; }
.ev-site .ev-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item::after { display: none; }

/* Estando en una ficha de casa, «Las casas» queda marcado como sección activa. */
.ev-site .ev-nav .elementor-nav-menu--main > li.current-menu-ancestor > a.elementor-item,
.ev-site .ev-nav .elementor-nav-menu--main > li.current-menu-parent > a.elementor-item {
	color: var(--ev-ink);
}

.ev-site .ev-nav .elementor-nav-menu--main > li.current-menu-ancestor > a.elementor-item::after,
.ev-site .ev-nav .elementor-nav-menu--main > li.current-menu-parent > a.elementor-item::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--ev-plum);
}

/* En móvil el submenú va indentado bajo «Las casas». */
.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu {
	background-color: var(--ev-sand);
	border: 0;
	box-shadow: none;
	padding: 0;
}

.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item {
	padding: 15px var(--ev-gut) 15px calc(var(--ev-gut) + 18px);
	border-bottom: 1px solid var(--ev-line-soft);
	font-size: 12.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ev-body);
}

/* Flecha del desplegable */
.ev-site .ev-nav .elementor-item .sub-arrow { margin-left: 8px; }
.ev-site .ev-nav .elementor-item .sub-arrow svg,
.ev-site .ev-nav .elementor-item .sub-arrow i { width: 11px; height: 11px; font-size: 11px; }

@media (max-width: 767px) {

	/* --- Footer: «Sitio» y «Tipologías» comparten fila --------------------- */

	.ev-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(30px, 7vw, 44px) 24px;
	}

	/* La marca y el bloque de contacto siguen a ancho completo. */
	.ev-footer__cols > .ev-footer__marca,
	.ev-footer__cols > .ev-footer__col:last-child { grid-column: 1 / -1; }

	/* --- «Las parcelas»: primero el texto, después la foto ----------------
	   En escritorio la sección alterna a propósito (foto a la izquierda), pero
	   apilada rompía el patrón del resto: todas empiezan por el texto. */

	.ev-site .ev-cols-2--center > :first-child { order: 2; }
}

/* El ítem activo del submenú en móvil venía con los colores por defecto de
   Elementor: texto oscuro sobre fondo oscuro, ilegible. */
.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item.elementor-item-active,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item:hover,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item:focus,
.ev-site .ev-nav nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item.highlighted {
	background-color: var(--ev-bg);
	color: var(--ev-plum);
	font-weight: 500;
}

.ev-site .ev-nav nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active {
	background-color: transparent;
	color: var(--ev-plum);
}

/* ------------------------------------------ tabla comparativa deslizable */

.ev-tabla-caja { position: relative; }

/* Degradado en el borde derecho: indica que la tabla sigue. */
.ev-tabla-caja::after {
	content: '';
	position: absolute;
	inset-block: 0;
	right: 0;
	width: 48px;
	background: linear-gradient(to right, rgba(253, 252, 250, 0), var(--ev-bg) 78%);
	pointer-events: none;
	opacity: 1;
	transition: opacity .3s ease;
}

.ev-tabla-caja[data-fin="1"]::after { opacity: 0; }

.ev-tabla-pista {
	display: none;
	margin: 14px 0 0;
	align-items: center;
	gap: 8px;
	font-family: var(--ev-sans);
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ev-muted);
	font-weight: 500;
	transition: opacity .3s ease;
}

.ev-tabla-pista svg { width: 22px; height: 10px; overflow: visible; }
.ev-tabla-pista svg path { stroke: var(--ev-plum); stroke-width: 1.4; fill: none; }

.ev-tabla-caja[data-fin="1"] + .ev-tabla-pista { opacity: 0; }

@media (max-width: 899px) {
	.ev-tabla-pista { display: flex; }
}

/* ------------------------------------------------------------------ móvil */

@media (max-width: 899px) {
	/* El panel desplegable debe ocupar el ancho del header, no el del widget.
	   Al quitar el position:relative de los envoltorios, el bloque contenedor
	   pasa a ser .ev-header (sticky) y el panel se estira de borde a borde. */
	.ev-site .ev-header__nav,
	.ev-site .ev-nav.elementor-widget-nav-menu { position: static; }

	.ev-site .ev-nav nav.elementor-nav-menu--dropdown {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		width: auto;
		max-width: none;
		/* Elementor separa el panel del header con un margen propio. */
		margin-top: 0;
		box-shadow: 0 24px 40px -34px rgba(36, 31, 38, .5);
	}
}

@media (max-width: 767px) {
	/* Las cifras se reparten en dos columnas; las separaciones se recalculan
	   para esa rejilla (línea arriba desde la segunda fila, línea al medio). */
	.ev-stats,
	.ev-stats--casa { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.ev-stats__item,
	.ev-stats--casa .ev-stats__item,
	.ev-stats__item + .ev-stats__item,
	.ev-stats--casa .ev-stats__item + .ev-stats__item {
		border: 0;
		--padding-block-start: 24px;
		--padding-block-end: 24px;
		--padding-inline-start: 0px;
		--padding-inline-end: 18px;
	}

	/* Línea horizontal continua a partir de la segunda fila. */
	.ev-stats .ev-stats__item:nth-child(n + 3),
	.ev-stats--casa .ev-stats__item:nth-child(n + 3) {
		border-top: 1px solid rgba(255, 255, 255, .18);
	}

	/* Línea vertical al medio: sin hueco entre celdas queda centrada. */
	.ev-stats .ev-stats__item:nth-child(even),
	.ev-stats--casa .ev-stats__item:nth-child(even) {
		border-left: 1px solid rgba(255, 255, 255, .18);
		--padding-inline-start: 18px;
		--padding-inline-end: 0px;
	}
}

/* ==========================================================================
   Ajustes de móvil
   ========================================================================== */

@media (max-width: 899px) {

	/* --- Zonas táctiles ---------------------------------------------------
	   Los enlaces de texto del diseño miden 16–21 px de alto, por debajo del
	   mínimo recomendado para el dedo. Se agranda el área sensible con un
	   pseudoelemento, sin mover ni un píxel de lo que se ve. */

	.ev-site .ev-link .elementor-button,
	.ev-site .ev-footer__enlaces a,
	.ev-site .ev-tabla__accion a,
	.ev-site .ev-datos__valor,
	.ev-site a.ev-volver {
		position: relative;
	}

	.ev-site .ev-link .elementor-button::after,
	.ev-site .ev-tabla__accion a::after,
	.ev-site a.ev-volver::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		top: -12px;
		bottom: -12px;
	}

	/* En el footer y en los datos de contacto el hueco entre líneas es menor,
	   así que se expande solo hasta la mitad de ese hueco. */
	.ev-site .ev-footer__enlaces a::after,
	.ev-site .ev-datos__valor::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		top: -7px;
		bottom: -7px;
	}

	/* --- Otras tipologías: dos por fila en vez de cuatro bloques enormes --- */
	.ev-otras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ev-otra__nombre { font-size: 20px; }

	/* --- Miniaturas de la galería: tres por fila --- */
	.ev-galeria__miniaturas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {

	/* --- Barra de datos de la ficha ---------------------------------------
	   Quedan dos columnas; las separaciones se recalculan para esa rejilla
	   (línea superior desde la segunda fila y línea vertical en la columna
	   derecha), en vez de heredar las del diseño de cinco columnas. */

	.ev-stats--casa { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.ev-stats--casa .ev-stats__item,
	.ev-stats--casa .ev-stats__item + .ev-stats__item {
		border-top: 0;
		border-left: 0;
		--padding-inline-start: 0px;
		--padding-inline-end: clamp(12px, 3vw, 20px);
	}

	.ev-stats--casa .ev-stats__item:nth-child(n + 3) {
		border-top: 1px solid rgba(255, 255, 255, .16);
	}

	.ev-stats--casa .ev-stats__item:nth-child(even) {
		border-left: 1px solid rgba(255, 255, 255, .16);
		--padding-inline-start: clamp(12px, 3vw, 20px);
	}
}

/* ----------------------------------------------------------------- mapa */

/* El iframe de Google no tiene proporción propia: se la fija el contenedor. */
.ev-mapa {
	position: relative;
	aspect-ratio: 21 / 9;
	border: 1px solid var(--ev-sand-line);
	background-color: #e8e3dc;
	overflow: hidden;
}

.ev-mapa iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.ev-site .ev-mapa__pie {
	margin: 14px 0 0;
	font-family: var(--ev-sans);
	font-size: 14.5px;
	font-weight: 300;
	color: var(--ev-muted);
}

.ev-site .ev-mapa__pie a {
	color: var(--ev-plum);
	border-bottom: 1px solid var(--ev-line-mid);
	padding-bottom: 1px;
}

.ev-site .ev-mapa__pie a:hover { border-bottom-color: var(--ev-plum); }

@media (max-width: 899px) {
	/* En vertical, un 21:9 deja el mapa demasiado bajo para orientarse. */
	.ev-mapa { aspect-ratio: 4 / 3; max-height: 70svh; }
	.ev-site .ev-mapa__pie a { position: relative; }
	.ev-site .ev-mapa__pie a::after { content: ''; position: absolute; left: 0; right: 0; top: -12px; bottom: -12px; }
}
