/* Wishome Editorial Menu v1.1.40
   Namespace propio .wem — no comparte nada con otros plugins de menú. */

.wem, .wem *, .wem *::before, .wem *::after { box-sizing: border-box; }

.wem {
	position: relative;
	z-index: 9990;
	width: 100%;
	font-family: var(--wem-nav-font, "Inter", Arial, sans-serif);
}
.wem ul { list-style: none; margin: 0; padding: 0; }
.wem a { text-decoration: none; color: inherit; -webkit-tap-highlight-color: transparent; }
.wem button {
	font: inherit; cursor: pointer; background: none; border: 0; padding: 0;
	-webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent;
}
.wem [hidden] { display: none !important; }

.wem-sr-only {
	position: absolute !important; width: 1px !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important; overflow: hidden !important;
	clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

.wem-editor-notice {
	padding: 12px 16px; background: #fff8dc; color: #222; font: 14px/1.4 Arial, sans-serif;
}

/* Elementor no debe recortar el desplegable. */
.elementor-widget-wishome-editorial-menu,
.elementor-widget-wishome-editorial-menu > .elementor-widget-container { overflow: visible !important; }

/* =========================================================
   CABECERA
   ========================================================= */
.wem-header { position: relative; z-index: 2; width: 100%; }

.wem-full-width .wem-header { width: 100vw; margin-left: calc(50% - 50vw); }

.wem.wem-sticky.is-fixed .wem-header {
	position: fixed; top: 0; left: 0; right: 0; width: 100%; margin-left: 0; z-index: 9997;
}
.wem-sticky-spacer { width: 100%; pointer-events: none; }

/* Franja superior */
.wem-topbar {
	display: flex; align-items: center; justify-content: center;
	width: 100%; min-height: 38px; padding: 8px 16px;
	background: var(--wem-topbar-bg, #111); color: var(--wem-topbar-color, #fff);
	font-size: 13px; line-height: 1.3; text-align: center;
	transition: background-color .25s ease, color .25s ease;
}
.wem-topbar-link { color: currentColor; text-decoration: underline; text-underline-offset: 2px; }
.wem-topbar-link:hover { text-decoration: none; }
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-topbar {
	background: transparent;
}
.wem.is-drawer-open .wem-topbar { display: none; }

/* Barra principal */
.wem-bar {
	width: 100%;
	background: var(--wem-bar-bg, #fff);
	transition: background-color .25s ease, height .25s ease;
}
/* Transparente sobre el hero */
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-bar {
	background: transparent;
}
/* Al pasar el ratón sobre un ítem con submenú (is-interacting) o con el
   panel/drawer móvil abierto (is-panel-open), la barra usa su propio color
   de fondo, independiente del color de scroll — gana siempre, haya o no
   scroll, para que el menú abierto se lea bien sobre cualquier fondo. */
.wem.is-interacting .wem-bar,
.wem.is-panel-open .wem-bar {
	background: var(--wem-bar-bg-hover, #fff) !important;
}

/* Degradado negro de arriba hacia abajo, solo mientras el menú está en su
   estado transparente sobre la foto de portada (antes de hacer scroll). Es
   puramente decorativo -no bloquea clics- y sirve para que el texto blanco
   del menú se siga leyendo bien encima de fotos claras. Se extiende un poco
   por debajo de la barra para que el degradado se funda con la foto y no
   se note un corte brusco. */
.wem-header::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: calc(var(--wem-bar-h, 88px) + 60px);
	background: linear-gradient(to bottom, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .28) 55%, rgba(0, 0, 0, 0) 100%);
	opacity: 0;
	pointer-events: none;
	z-index: -1;
	transition: opacity .25s ease;
}
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-header::before {
	opacity: 1;
}
/* En móvil la barra es más baja: el degradado se ajusta a esa altura. */
@media (max-width: 1179px) {
	.wem-header::before { height: calc(var(--wem-mobile-bar-h, 64px) + 40px); }
}

.wem-bar-inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px;
	width: 100%;
	height: var(--wem-bar-h, 88px);
	max-width: 1600px;
	margin: 0 auto;
	padding: 0 var(--wem-bar-pad, 32px);
	transition: height .25s ease;
}
.wem.is-scrolled .wem-bar-inner { height: calc(var(--wem-bar-h, 88px) - 12px * var(--wem-shrink, 1)); }

/* Logo — v1.1.29: un pelín más pequeño en general y con más margen al
   hacer scroll (antes ocupaba casi toda la franja blanca de la barra
   fija, sin apenas aire arriba/abajo). */
.wem-logo-slot { display: flex; align-items: center; flex: 0 0 auto; }
.wem-logo {
	display: inline-flex; align-items: center;
	height: calc(var(--wem-logo-h, 40px) * .85);
	transition: height .25s ease;
}
.wem.is-scrolled .wem-logo,
.wem.is-interacting .wem-logo,
.wem.is-panel-open .wem-logo { height: calc(var(--wem-logo-h, 40px) * (.85 - .17 * var(--wem-shrink, 1))); }
.wem-logo img { display: block; height: 100%; width: auto; }
.wem-logo .wem-logo-scroll { display: none; }
.wem-logo-text {
	font-family: "Playfair Display", Georgia, serif; font-size: 20px; letter-spacing: .04em;
	color: var(--wem-nav-color-top, #fff);
}
/* Al pasar a sólido, si hay logo de scroll se intercambia. El intercambio solo
   ocurre cuando existe un logo de scroll (clase .wem-has-scroll-logo); si no,
   el logo principal permanece visible siempre y no "desaparece" al scrollear. */
.wem.wem-has-scroll-logo.is-scrolled .wem-logo-slot .wem-logo-main,
.wem.wem-has-scroll-logo.is-interacting .wem-logo-slot .wem-logo-main,
.wem.wem-has-scroll-logo.is-panel-open .wem-logo-slot .wem-logo-main { display: none; }
.wem.wem-has-scroll-logo.is-scrolled .wem-logo-slot .wem-logo-scroll,
.wem.wem-has-scroll-logo.is-interacting .wem-logo-slot .wem-logo-scroll,
.wem.wem-has-scroll-logo.is-panel-open .wem-logo-slot .wem-logo-scroll { display: block; }
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-logo-text { color: var(--wem-nav-color-top, #fff); }
.wem.is-scrolled .wem-logo-text,
.wem.is-interacting .wem-logo-text,
.wem.is-panel-open .wem-logo-text { color: var(--wem-nav-color, #111); }

/* Navegación principal */
.wem-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.wem-nav-list { display: flex; align-items: center; gap: var(--wem-nav-gap, 28px); flex-wrap: nowrap; }
.wem-nav-item { position: relative; }
.wem-nav-row { display: flex; align-items: center; gap: 4px; }

.wem-nav-link {
	position: relative;
	display: inline-block;
	padding: 6px 0;
	font-family: var(--wem-nav-font, "Inter", Arial, sans-serif);
	font-size: var(--wem-nav-fs, 14px);
	font-weight: var(--wem-nav-fw, 500);
	color: var(--wem-nav-color, #111);
	white-space: nowrap;
	transition: color .18s ease;
}
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-nav-link {
	color: var(--wem-nav-color-top, #fff);
}
.wem-nav-link::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 0; height: 2px; background: currentColor; opacity: 0;
	transition: width .2s ease, opacity .2s ease;
}
.wem-nav-item:hover .wem-nav-link,
.wem-nav-item.is-active .wem-nav-link,
.wem-nav-item.is-current > .wem-nav-row .wem-nav-link,
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-link { color: var(--wem-nav-hover, #0B5C50); }
.wem-nav-item:hover .wem-nav-link::after,
.wem-nav-item.is-active .wem-nav-link::after,
.wem-nav-item.is-current > .wem-nav-row .wem-nav-link::after,
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-link::after { width: var(--wem-nav-underline, 100%); opacity: 1; }

/* Sobre el hero transparente, la ubicación actual se ve en blanco (mismo
   color que el resto del menú en ese estado) porque el verde corporativo
   no siempre contrasta bien sobre las fotos de portada. */
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-current > .wem-nav-row .wem-nav-link,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-link {
	color: var(--wem-nav-color-top, #fff);
}

.wem-nav-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
	color: var(--wem-nav-color, #111);
	transition: color .18s ease;
}
/* Blindaje frente a estilos globales del tema/Elementor (ej. Astra aplica
   fondo y color blanco a los botones en :hover dentro de la cabecera):
   este botón nunca lleva fondo, borde ni sombra propios, en ningún estado. */
.wem .wem-nav-toggle,
.wem .wem-nav-toggle:hover,
.wem .wem-nav-toggle:focus,
.wem .wem-nav-toggle:active {
	background: none !important; border: 0 !important; box-shadow: none !important;
}
/* Blanca sobre el hero, igual que el resto del menú; no sigue el color de
   hover (verde) de los enlaces, se mantiene neutra en todo momento. */
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-nav-toggle,
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-nav-toggle:hover,
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-nav-toggle:focus,
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-nav-toggle:active {
	color: var(--wem-nav-color-top, #fff) !important;
}
/* En la sección actual, la flecha acompaña al enlace activo. */
.wem .wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle,
.wem .wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle,
.wem .wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:hover,
.wem .wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:hover,
.wem .wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:focus,
.wem .wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:focus,
.wem .wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:active,
.wem .wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:active {
	color: var(--wem-nav-hover, #0B5C50) !important;
}
/* Sobre el hero transparente, la flecha sigue al enlace y se ve en blanco
   por el mismo motivo que el texto: el verde no siempre contrasta bien
   sobre la foto de portada. */
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:hover,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:hover,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:focus,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:focus,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-current > .wem-nav-row .wem-nav-toggle:active,
.wem.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open)
.wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-toggle:active {
	color: var(--wem-nav-color-top, #fff) !important;
}
.wem-caret {
	display: inline-block; width: 7px; height: 7px;
	border-right: 1.4px solid currentColor; border-bottom: 1.4px solid currentColor;
	transform: rotate(45deg) translateY(-1px);
	opacity: 1;
	transition: transform .18s ease;
}

/* Acciones (iconos + hamburguesa) */
.wem-actions { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.wem-social { display: flex; align-items: center; gap: 12px; }
.wem-social-icon { display: inline-flex; font-size: 20px; color: var(--wem-nav-color, #111); transition: color .18s ease; }
.wem-social-icon svg { width: 20px; height: 20px; fill: currentColor; }
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-social-icon { color: var(--wem-nav-color-top, #fff); }

.wem-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 26px; height: 22px; }
.wem-burger span { display: block; height: 2px; width: 100%; background: var(--wem-nav-color, #111); transition: background-color .18s ease; }
.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-burger span { background: var(--wem-nav-color-top, #fff); }

/* =========================================================
   PANEL (MEGA MENÚ EDITORIAL)
   ========================================================= */
.wem-panel {
	position: absolute; left: 0; top: 100%; width: 100%; z-index: 12;
	background: var(--wem-panel-bg, #fff);
	border-top: 1px solid rgba(0,0,0,.08);
	border-bottom: 1px solid rgba(0,0,0,.08);
	opacity: 0; transform: translateY(6px); visibility: hidden; pointer-events: none;
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.wem-panel.is-open { opacity: 1; transform: translateY(0); visibility: visible; pointer-events: auto; }

.wem-panel-inner {
	width: min(100%, var(--wem-panel-max, 1280px));
	margin: 0 auto;
	padding: var(--wem-panel-py, 34px) var(--wem-panel-px, 32px);
}

.wem-panel-inner { display: flex; align-items: stretch; justify-content: center; gap: var(--wem-split-gap, 48px); }

.wem-links-col {
	flex: 0 1 auto;
	width: fit-content;
	max-width: var(--wem-split, 50%);
	min-width: 0;
	display: flex;
	align-items: center;
}

/* Solo se muestra el grupo de la categoría activa */
.wem-group { display: none; }
.wem-group.is-active-group { display: block; }

.wem-group-list { display: flex; flex-direction: column; }
.wem-group-item { min-width: 0; }

.wem-group-link {
	display: inline-block;
	padding: var(--wem-link-gap, 10px) 0;
	font-family: var(--wem-link-font, "Playfair Display", Georgia, serif);
	font-size: var(--wem-link-fs, 22px);
	font-weight: var(--wem-link-fw, 500);
	line-height: 1.2;
	color: var(--wem-link-color, #111);
	transition: color .18s ease;
}
.wem-group-link:hover,
.wem-group-link:focus-visible { color: var(--wem-link-hover, #0B5C50); }
.wem-group-item.is-current > .wem-group-link,
.wem-group-item.is-ancestor > .wem-group-link { color: var(--wem-nav-hover, #0B5C50); }

/* Escenario (foto + kicker + título) */
.wem-stage {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	/* v1.1.7: las imágenes recomendadas del mega menú son 800x600 (4:3).
	   Por defecto el escenario adopta esa proporción para evitar el recorte
	   vertical de object-fit: cover. El modo manual conserva la altura antigua. */
	height: var(--wem-stage-height, var(--wem-stage-h, 320px));
	aspect-ratio: var(--wem-stage-aspect, auto);
	max-width: var(--wem-stage-max-w, none);
	align-self: center;
	overflow: hidden;
	border-radius: var(--wem-stage-radius, 2px);
	background: #e9e9e9;
}
.wem-stage-media { position: absolute; inset: 0; }
.wem-stage-img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; opacity: 0;
	transition: opacity var(--wem-fade, 450ms) ease;
}
.wem-stage-img.is-visible { opacity: 1; }
.wem-stage-img[src=""] , .wem-stage-img:not([src]) { opacity: 0 !important; }

/* v1.1.27: sin texto (rótulo/ubicación) sobre la foto del mega menú de
   escritorio — se oculta la leyenda y, con ella, el degradado oscuro que
   solo existía para que ese texto se leyera bien sobre la imagen. */
.wem-stage::after { display: none; }
.wem-stage-caption { display: none; }
.wem-stage-kicker {
	font-family: var(--wem-kicker-font, "Inter", Arial, sans-serif);
	font-size: var(--wem-kicker-fs, 11px);
	font-weight: var(--wem-kicker-fw, 600);
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--wem-kicker-color, #fff);
}
.wem-stage-kicker:empty { display: none; }
.wem-stage-title {
	font-family: var(--wem-stage-title-font, "Playfair Display", Georgia, serif);
	font-size: var(--wem-stage-title-fs, 20px);
	font-weight: var(--wem-stage-title-fw, 500);
	line-height: 1.25;
	color: var(--wem-stage-title-color, #fff);
}
.wem-stage-title:empty { display: none; }

/* Sin ninguna imagen: el rectángulo gris no debe verse.
   Se controla con la clase .wem-stage--empty que añade el JS cuando la
   imagen visible no tiene src. */
.wem-stage.wem-stage--empty { background: transparent; }
.wem-stage.wem-stage--empty::after { background: transparent; }

/* =========================================================
   MÓVIL
   ========================================================= */
.wem-drawer { display: none; }

@media (max-width: 1179px) {
	.wem-nav { display: none; }
	.wem-panel { display: none !important; }
	.wem-burger { display: flex; }
	.wem-bar-inner { height: var(--wem-mobile-bar-h, 64px); }
	.wem.is-scrolled .wem-bar-inner { height: var(--wem-mobile-bar-h, 64px); }

	/* Logos móvil: mismo tamaño dentro y fuera del drawer. SVG y raster
	   conservan su proporción real; nunca se fuerza ancho + alto a la vez. */
	.wem-bar .wem-logo { height: 38px; max-width: 190px; }
	.wem-bar .wem-logo img { width: auto; height: auto; max-width: 190px; max-height: 38px; object-fit: contain; image-rendering: auto; }

	/* En móvil los iconos de redes salen de la barra: se muestran dentro del
	   menú desplegable (drawer). Ver .wem-social--drawer más abajo. */
	.wem-bar .wem-social { display: none; }

	.wem-drawer {
		display: flex; flex-direction: column;
		position: fixed; inset: 0; z-index: 9999;
		height: 100vh; height: 100dvh;
		background: var(--wem-drawer-bg, #fff);
		color: var(--wem-drawer-color, #111);
		transform: translateX(100%);
		transition: transform .28s ease;
		overflow: hidden;
	}
	.wem-drawer.is-open { transform: translateX(0); }

	.wem-drawer-head {
		flex: 0 0 auto;
		display: flex; align-items: center; justify-content: space-between;
		padding: 18px 22px; border-bottom: 1px solid rgba(0,0,0,.08);
	}
	.wem-logo--drawer { height: 38px; max-width: 190px; }
	.wem-logo--drawer img { width: auto; height: auto; max-width: 190px; max-height: 38px; object-fit: contain; image-rendering: auto; }
	.wem-logo--drawer .wem-logo-main { display: block; }
	.wem-drawer-close { position: relative; width: 26px; height: 26px; }
	.wem-drawer-close span {
		position: absolute; top: 50%; left: 0; width: 100%; height: 2px;
		background: var(--wem-drawer-color, #111);
	}
	.wem-drawer-close span:first-child { transform: rotate(45deg); }
	.wem-drawer-close span:last-child { transform: rotate(-45deg); }

	/* min-height: 0 es imprescindible: sin él, este bloque flexible puede
	   crecer más de lo que le corresponde (sobre todo en Safari/iOS al abrir
	   submenús), empujando el pie -CTA e iconos- fuera de la pantalla en vez
	   de quedarse fijo abajo. Con min-height: 0 el overflow-y: auto funciona
	   como debe: si no cabe, hace scroll aquí dentro y el pie nunca se mueve. */
	.wem-mobile-nav {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		/* v1.1.34: centrado "seguro". Con justify-content:center, cuando la
		   lista era más alta que el área, se desbordaba por ARRIBA y las
		   primeras páginas quedaban cortadas e inalcanzables con el scroll.
		   Con margin:auto en la lista se centra si cabe, y si no cabe empieza
		   arriba y se puede hacer scroll hasta el final. */
		justify-content: flex-start;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		padding: 12px 22px 30px;
	}
	.wem-mobile-list { flex: 0 0 auto; margin-top: auto; margin-bottom: auto; }
	.wem-mobile-item { border-bottom: 1px solid rgba(0,0,0,.06); }
	.wem-mobile-row { display: flex; align-items: center; justify-content: space-between; }
	/* Páginas principales del menú móvil: misma tipografía Inter que el
	   menú de PC. Las subpáginas (dentro de .wem-mobile-sub) usan Playfair
	   Display, igual que el mega menú de PC (ver .wem-mobile-sub más abajo). */
	.wem-mobile-link {
		display: block; flex: 1 1 auto;
		padding: clamp(10px, 3vh, 16px) 0;
		font-family: var(--wem-nav-font, "Inter", Arial, sans-serif);
		font-size: clamp(17px, 4.2vh, var(--wem-mobile-fs, 20px));
		font-weight: var(--wem-mobile-fw, 500);
		color: var(--wem-drawer-color, #111);
	}
	.wem-mobile-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		width: 44px; height: 44px;
	}
	/* Blindaje frente a estilos globales del tema/Elementor: la flecha nunca
	   puede volverse blanca al abrir, pulsar o enfocar un submenú. */
	.wem .wem-drawer .wem-mobile-toggle,
	.wem .wem-drawer .wem-mobile-toggle:hover,
	.wem .wem-drawer .wem-mobile-toggle:focus,
	.wem .wem-drawer .wem-mobile-toggle:active,
	.wem .wem-drawer .wem-mobile-toggle[aria-expanded="true"] {
		color: var(--wem-drawer-color, #111) !important;
	}
	.wem-mobile-toggle .wem-caret {
		width: 8px; height: 8px;
		color: inherit; opacity: 1; filter: none;
		border-right-color: currentColor; border-bottom-color: currentColor;
		transition: transform .2s ease;
	}
	.wem-mobile-toggle[aria-expanded="true"] .wem-caret { transform: rotate(225deg) translate(-1px,-1px); }

	/* Página actual y toda su ruta padre en el verde corporativo configurado
	   en "Color hover / activo". Se aplica a cualquier profundidad. */
	.wem .wem-drawer .wem-mobile-item.is-current > .wem-mobile-row > .wem-mobile-link,
	.wem .wem-drawer .wem-mobile-item.is-ancestor > .wem-mobile-row > .wem-mobile-link {
		color: var(--wem-nav-hover, #0B5C50);
	}
	.wem .wem-drawer .wem-mobile-item.is-current > .wem-mobile-row > .wem-mobile-toggle,
	.wem .wem-drawer .wem-mobile-item.is-ancestor > .wem-mobile-row > .wem-mobile-toggle,
	.wem .wem-drawer .wem-mobile-item.is-current > .wem-mobile-row > .wem-mobile-toggle:hover,
	.wem .wem-drawer .wem-mobile-item.is-ancestor > .wem-mobile-row > .wem-mobile-toggle:hover,
	.wem .wem-drawer .wem-mobile-item.is-current > .wem-mobile-row > .wem-mobile-toggle:focus,
	.wem .wem-drawer .wem-mobile-item.is-ancestor > .wem-mobile-row > .wem-mobile-toggle:focus,
	.wem .wem-drawer .wem-mobile-item.is-current > .wem-mobile-row > .wem-mobile-toggle:active,
	.wem .wem-drawer .wem-mobile-item.is-ancestor > .wem-mobile-row > .wem-mobile-toggle:active {
		color: var(--wem-nav-hover, #0B5C50) !important;
	}

	.wem-mobile-sub { padding-left: 16px; }
	.wem-mobile-sub .wem-mobile-link {
		font-family: var(--wem-mobile-font, "Playfair Display", Georgia, serif);
		font-size: calc(var(--wem-mobile-fs, 20px) * .8);
		padding: 12px 0;
	}
	.wem-mobile-sub .wem-mobile-item:last-child { border-bottom: 0; }

	/* v1.1.28: sin botón "Busca tu villa" — el pie del drawer solo lleva
	   ahora los botones de contacto (ver .wem-social--drawer). El bloque
	   de navegación de arriba (.wem-mobile-nav) tiene más espacio libre y
	   por tanto queda mejor centrado verticalmente entre cabecera y pie. */
	.wem-drawer-footer { flex: 0 0 auto; padding: 10px 22px 40px; }

	/* Iconos/botones de contacto dentro del menú móvil */
	.wem-social--drawer {
		display: flex; align-items: stretch; justify-content: center;
		gap: 12px;
	}
	/* Blindaje frente a estilos globales del tema (Astra suele forzar blanco
	   en enlaces/iconos del header, pensado para su propio header oscuro o
	   transparente). Sin !important esa regla gana por especificidad y el
	   icono queda blanco sobre fondo blanco -> invisible. Mismo patrón que
	   ya se aplicó al icono de la hamburguesa. */
	.wem .wem-drawer .wem-social--drawer .wem-social-icon,
	.wem .wem-drawer .wem-social--drawer .wem-social-icon:hover,
	.wem .wem-drawer .wem-social--drawer .wem-social-icon:focus,
	.wem .wem-drawer .wem-social--drawer .wem-social-icon:active,
	.wem .wem-drawer .wem-social--drawer .wem-social-icon i {
		color: var(--wem-drawer-color, #111) !important;
	}
	/* Icono suelto sin texto de botón: se conserva grande y centrado,
	   como antes. */
	.wem-social--drawer .wem-social-icon:not(.wem-social-btn) { font-size: 26px; }
	.wem-social--drawer .wem-social-icon:not(.wem-social-btn) svg { width: 26px; height: 26px; fill: currentColor !important; }

	/* Botones con icono + texto (p. ej. "Llama" / "WhatsApp"): a ancho
	   completo, uno junto a otro, con buen tamaño de toque en móvil. */
	.wem-social--drawer .wem-social-btn {
		display: inline-flex; align-items: center; gap: 8px;
		flex: 1 1 0; justify-content: center;
		padding: 10px 8px;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .04em;
		text-transform: uppercase;
		white-space: nowrap;
		font-family: var(--wem-nav-font, "Inter", Arial, sans-serif);
		border-radius: 0;
		background: #111111;
	}
	/* Botón negro: icono y texto siempre en blanco, blindado frente a
	   estilos globales del tema igual que el resto de iconos del drawer. */
	.wem .wem-drawer .wem-social--drawer .wem-social-btn,
	.wem .wem-drawer .wem-social--drawer .wem-social-btn:hover,
	.wem .wem-drawer .wem-social--drawer .wem-social-btn:focus,
	.wem .wem-drawer .wem-social--drawer .wem-social-btn:active,
	.wem .wem-drawer .wem-social--drawer .wem-social-btn i {
		color: #ffffff !important;
	}
	.wem-social--drawer .wem-social-btn i { font-size: 17px; }
	.wem-social--drawer .wem-social-btn svg { width: 17px; height: 17px; fill: #ffffff !important; }
}

/* v1.1.33 — Blindaje del logo en escritorio: reglas genéricas de imágenes del
   tema/Elementor (p. ej. ".elementor img{height:auto}") lo dejaban a su
   tamaño natural en la web aunque en el editor se viera bien. */
@media (min-width: 1180px) {
	.wem .wem-logo { height: calc(var(--wem-logo-h, 40px) * .85); }
	.wem.is-scrolled .wem-logo,
	.wem.is-interacting .wem-logo,
	.wem.is-panel-open .wem-logo { height: calc(var(--wem-logo-h, 40px) * (.85 - .17 * var(--wem-shrink, 1))); }
	.wem .wem-logo img { height: 100% !important; width: auto !important; max-width: none !important; max-height: 100% !important; }
}

/* v1.1.32 — Logo más pequeño en portátiles (1180–1440px). La cabecera queda
   fuera del zoom que muchos sitios aplican al contenido en pantallas
   pequeñas, así que el logo se veía demasiado grande. Se controla desde
   Elementor: Estilo > Cabecera > "Altura del logo en portátil". */
@media (min-width: 1180px) and (max-width: 1440px) {
	.wem .wem-logo { height: calc(var(--wem-logo-h-lap, var(--wem-logo-h, 40px)) * .85); }
	.wem.is-scrolled .wem-logo,
	.wem.is-interacting .wem-logo,
	.wem.is-panel-open .wem-logo { height: calc(var(--wem-logo-h-lap, var(--wem-logo-h, 40px)) * (.85 - .17 * var(--wem-shrink, 1))); }
}

/* En escritorio el drawer nunca se muestra */
@media (min-width: 1180px) {
	.wem-drawer { display: none !important; }
}

/* =========================================================
   v1.1.35 — ESTILO PREMIUM (solo escritorio, clase .wem-premium)
   Se activa/desactiva con el interruptor "Estilo premium (escritorio)"
   en Estilo > Cabecera. Todo va bajo .wem-premium, así que al
   desactivarlo el menú vuelve exactamente al aspecto anterior.
   ========================================================= */
@media (min-width: 1180px) {

	/* Franja superior: fija (va dentro de la cabecera), fina y siempre
	   sólida, en negro por defecto. */
	.wem.wem-premium .wem-topbar {
		min-height: 32px; padding: 6px 16px;
		font-size: 11px; font-weight: 500; line-height: 1.2;
		letter-spacing: .18em; text-transform: uppercase;
		background: var(--wem-topbar-bg, #000) !important;
	}
	.wem.wem-premium .wem-topbar-link { text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
	.wem.wem-premium .wem-topbar-link:hover { border-bottom-color: transparent; }

	/* Barra principal: más aire en reposo, más fina al hacer scroll. */
	.wem.wem-premium .wem-bar-inner { height: calc(var(--wem-bar-h, 88px) + 12px); transition: height .4s cubic-bezier(.4, 0, .2, 1); }
	.wem.wem-premium.is-scrolled .wem-bar-inner { height: calc(var(--wem-bar-h, 88px) + 12px - 30px * var(--wem-shrink, 1)); }
	.wem.wem-premium .wem-bar { transition: background-color .4s cubic-bezier(.4, 0, .2, 1), box-shadow .4s ease; }

	/* Degradado sobre el hero más largo y suave. */
	.wem.wem-premium .wem-header::before {
		height: calc(var(--wem-bar-h, 88px) + 130px);
		background: linear-gradient(to bottom, rgba(0, 0, 0, .42) 0%, rgba(0, 0, 0, .2) 45%, rgba(0, 0, 0, .06) 78%, rgba(0, 0, 0, 0) 100%);
	}

	/* Línea fina bajo la barra sobre el hero. */
	.wem.wem-premium.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-bar {
		box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .22);
	}
	/* Barra con scroll: fondo translúcido con desenfoque. */
	.wem.wem-premium.is-scrolled:not(.is-interacting):not(.is-panel-open) .wem-bar {
		background: var(--wem-bar-bg, #fff);
		background: color-mix(in srgb, var(--wem-bar-bg, #fff) 90%, transparent);
		-webkit-backdrop-filter: saturate(140%) blur(14px);
		backdrop-filter: saturate(140%) blur(14px);
		box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
	}
	.wem.wem-premium.is-interacting .wem-bar,
	.wem.wem-premium.is-panel-open .wem-bar { box-shadow: none; }

	/* Tipografía: fina, pequeña y espaciada. */
	.wem.wem-premium .wem-nav-list { gap: clamp(24px, 2.4vw, 44px); }
	.wem.wem-premium .wem-nav-list .wem-nav-link {
		font-size: calc(var(--wem-nav-fs, 14px) * .9);
		font-weight: 400;
		letter-spacing: .14em;
		text-transform: uppercase;
		padding: 10px 0;
	}
	.wem.wem-premium .wem-nav-row { gap: 6px; }
	.wem.wem-premium .wem-caret { width: 5px; height: 5px; border-right-width: 1px; border-bottom-width: 1px; }

	/* Subrayado de 1 px que crece desde el centro; el ítem activo lleva
	   solo una línea corta. */
	.wem.wem-premium .wem-nav-list .wem-nav-link::after {
		left: 50%; bottom: 3px; height: 1px;
		transform: translateX(-50%);
		transition: width .35s cubic-bezier(.4, 0, .2, 1), opacity .25s ease;
	}
	.wem.wem-premium .wem-nav-item.is-current > .wem-nav-row .wem-nav-link::after,
	.wem.wem-premium .wem-nav-item.is-ancestor > .wem-nav-row .wem-nav-link::after { width: 20px; opacity: 1; }
	.wem.wem-premium .wem-nav-item:hover > .wem-nav-row .wem-nav-link::after,
	.wem.wem-premium .wem-nav-item.is-active > .wem-nav-row .wem-nav-link::after { width: var(--wem-nav-underline, 100%); opacity: 1; }

	/* Iconos de contacto: más discretos, con un separador vertical sutil. */
	.wem.wem-premium .wem-bar .wem-social { gap: 16px; padding-left: 22px; border-left: 1px solid rgba(0, 0, 0, .14); }
	.wem.wem-premium.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-bar .wem-social { border-left-color: rgba(255, 255, 255, .28); }
	.wem.wem-premium .wem-bar .wem-social-icon { opacity: .88; transition: color .18s ease, opacity .18s ease; }
	.wem.wem-premium .wem-bar .wem-social-icon:hover { opacity: 1; }
	.wem.wem-premium .wem-bar .wem-social-icon svg { width: 18px; height: 18px; }
	.wem.wem-premium .wem-bar .wem-social-icon { font-size: 18px; }

	/* Desplegable: blanco roto, compacto y con entrada suave. */
	.wem.wem-premium .wem-panel {
		background: var(--wem-panel-bg, #FAF8F4);
		border-top: 1px solid rgba(0, 0, 0, .06);
		border-bottom: 0;
		box-shadow: 0 28px 48px -28px rgba(0, 0, 0, .2);
		transform: translateY(8px);
		transition: opacity .22s ease, transform .22s cubic-bezier(.2, .7, .2, 1), visibility .22s ease;
	}
	.wem.wem-premium .wem-panel.is-open { transform: translateY(0); }
	.wem.wem-premium .wem-panel-inner {
		width: min(100%, min(var(--wem-panel-max, 1280px), 1200px));
		padding-top: clamp(20px, 3vh, 30px);
		padding-bottom: clamp(20px, 3vh, 30px);
	}
	.wem.wem-premium .wem-group-list .wem-group-link {
		font-weight: 400;
		letter-spacing: .01em;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		color: var(--wem-link-color, #111);
		color: color-mix(in srgb, var(--wem-link-color, #111) 78%, transparent);
		font-size: calc(var(--wem-link-fs, 22px) * .92);
		padding: min(var(--wem-link-gap, 10px), 7px) 0;
		transition: color .2s ease, transform .3s cubic-bezier(.2, .7, .2, 1);
	}
	.wem.wem-premium .wem-group-list .wem-group-link:hover,
	.wem.wem-premium .wem-group-list .wem-group-link:focus-visible { color: var(--wem-link-hover, #0B5C50); transform: translateX(4px); }
	.wem.wem-premium .wem-group-list .wem-group-item.is-current > .wem-group-link,
	.wem.wem-premium .wem-group-list .wem-group-item.is-ancestor > .wem-group-link { color: var(--wem-nav-hover, #0B5C50); }
	.wem.wem-premium .wem-stage {
		height: auto;
		aspect-ratio: 3 / 2;
		max-width: min(var(--wem-stage-max-w, 460px), 400px);
	}
}
/* v1.1.38 — Escritorio fluido: en portátiles y ventanas pequeñas (1180–1600 px)
   el menú escala tipografía, espaciado y desplegable con el ancho de la
   pantalla para que no quede apretado. En pantallas grandes se ve igual. */
@media (min-width: 1180px) {
	.wem.wem-premium .wem-bar-inner {
		gap: clamp(14px, 1.8vw, 32px);
		padding-left: clamp(20px, 2.4vw, var(--wem-bar-pad, 32px));
		padding-right: clamp(20px, 2.4vw, var(--wem-bar-pad, 32px));
	}
	.wem.wem-premium .wem-nav { min-width: 0; }
	.wem.wem-premium .wem-nav-list { gap: clamp(16px, 1.9vw, 44px); }
	.wem.wem-premium .wem-nav-list .wem-nav-link {
		font-size: clamp(10.5px, calc(.5vw + 5.6px), calc(var(--wem-nav-fs, 14px) * .9));
		letter-spacing: clamp(.06em, calc(.06em + (100vw - 1180px) * .0028), .14em);
	}
	.wem.wem-premium .wem-nav-row { gap: clamp(3px, .4vw, 6px); }
	.wem.wem-premium .wem-bar .wem-social { gap: clamp(10px, 1.2vw, 16px); padding-left: clamp(12px, 1.6vw, 22px); }
	.wem.wem-premium .wem-actions { gap: clamp(8px, 1vw, 14px); }

	/* Desplegable fluido */
	.wem.wem-premium .wem-panel-inner {
		padding-left: clamp(20px, 3vw, var(--wem-panel-px, 32px));
		padding-right: clamp(20px, 3vw, var(--wem-panel-px, 32px));
		gap: clamp(28px, 4vw, var(--wem-split-gap, 64px));
	}
	.wem.wem-premium .wem-group-list .wem-group-link { font-size: clamp(16px, 1.45vw, calc(var(--wem-link-fs, 22px) * .92)); }
	.wem.wem-premium .wem-stage { max-width: min(var(--wem-stage-max-w, 460px), 400px, 30vw); }
}
/* Pantallas bajas (portátiles de 13"-14"): el desplegable no debe pasarse de alto. */
@media (min-width: 1180px) and (max-height: 780px) {
	.wem.wem-premium .wem-panel-inner { padding-top: 18px; padding-bottom: 18px; }
	.wem.wem-premium .wem-group-list .wem-group-link { padding-top: 4px; padding-bottom: 4px; }
	.wem.wem-premium .wem-stage { max-width: min(var(--wem-stage-max-w, 460px), 340px, 28vw); }
}

/* v1.1.35 — Estilo premium en móvil: menú desplegable en beige, tipografía
   fina y aparición escalonada. */
@media (max-width: 1179px) {
	.wem.wem-premium .wem-topbar {
		min-height: 30px; padding: 6px 12px;
		font-size: 10px; font-weight: 500; line-height: 1.2;
		letter-spacing: .14em; text-transform: uppercase;
		background: var(--wem-topbar-bg, #000) !important;
	}
	.wem.wem-premium .wem-burger { gap: 6px; }
	.wem.wem-premium .wem-burger span { height: 1.5px; }

	.wem.wem-premium .wem-drawer { background: var(--wem-drawer-bg, #FAF8F4); }
	.wem.wem-premium .wem-drawer-head { border-bottom: 1px solid rgba(0, 0, 0, .06); }
	.wem.wem-premium .wem-drawer-close span { height: 1.5px; }
	.wem.wem-premium .wem-mobile-nav { padding-left: 28px; padding-right: 28px; }
	.wem.wem-premium .wem-drawer-footer { padding-left: 28px; padding-right: 28px; }
	.wem.wem-premium .wem-drawer .wem-mobile-item { border-bottom: 1px solid rgba(0, 0, 0, .07); }
	.wem.wem-premium .wem-drawer .wem-mobile-sub .wem-mobile-item { border-bottom: 0; }

	/* Páginas principales: Inter fina, mayúsculas y espaciada. */
	.wem.wem-premium .wem-drawer .wem-mobile-list .wem-mobile-item .wem-mobile-link {
		font-family: var(--wem-nav-font, "Inter", Arial, sans-serif);
		font-size: clamp(13px, calc(var(--wem-mobile-fs, 20px) * .72), 16px);
		font-weight: 400;
		letter-spacing: .16em;
		text-transform: uppercase;
	}
	/* Subpáginas: Playfair Display en su grosor más fino. */
	.wem.wem-premium .wem-drawer .wem-mobile-list .wem-mobile-sub .wem-mobile-item .wem-mobile-link {
		font-family: var(--wem-mobile-font, "Playfair Display", Georgia, serif);
		font-size: calc(var(--wem-mobile-fs, 20px) * .85);
		font-weight: 400;
		letter-spacing: .01em;
		text-transform: none;
		padding: 10px 0;
	}
	.wem.wem-premium .wem-mobile-toggle .wem-caret { width: 7px; height: 7px; border-right-width: 1px; border-bottom-width: 1px; }

	/* Botones de contacto del pie: mismo tono fino. */
	.wem.wem-premium .wem-social--drawer .wem-social-btn { font-size: 12px; font-weight: 500; letter-spacing: .14em; }

	/* Aparición escalonada de las páginas al abrir el menú. */
	@keyframes wemDrawerItemIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item { animation: wemDrawerItemIn .55s cubic-bezier(.2, .7, .2, 1) both; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(1) { animation-delay: .10s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(2) { animation-delay: .16s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(3) { animation-delay: .22s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(4) { animation-delay: .28s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(5) { animation-delay: .34s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(6) { animation-delay: .40s; }
	.wem.wem-premium .wem-drawer.is-open .wem-mobile-list > .wem-mobile-item:nth-child(n+7) { animation-delay: .46s; }
}

/* v1.1.39 — Franja superior premium: transparente con una línea fina debajo
   sobre el hero (antes de hacer scroll) y negra sólida al hacer scroll o con
   el menú abierto. Escritorio y móvil. */
.wem.wem-premium .wem-topbar {
	border-bottom: 1px solid transparent;
	transition: background-color .35s ease, border-color .35s ease, color .25s ease;
}
.wem.wem-premium.wem-transparent-initial:not(.is-scrolled):not(.is-interacting):not(.is-panel-open) .wem-topbar {
	background: transparent !important;
	border-bottom-color: rgba(255, 255, 255, .15);
}

@media (prefers-reduced-motion: reduce) {
	.wem-stage-img, .wem-panel, .wem-bar, .wem-drawer { transition: none !important; }
	.wem.wem-premium .wem-drawer .wem-mobile-list > .wem-mobile-item { animation: none !important; }
}
