/*
Theme Name: Hello Elementor Child
Theme URI: https://polaravis.com/
Description: Child theme de Hello Elementor para POLARAVIS. Carga la familia Minerva Modern por @font-face, la registra en Elementor, publica el selector de idioma de Polylang y define los tokens de color/tipografia del sitio.
Author: MD Marketing Digital
Author URI: https://www.mdmarketingdigital.com/
Template: hello-elementor
Version: 1.0.35
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/* -------------------------------------------------------------------------
   1. Minerva Modern (fuente comercial, servida local desde este child theme)
   ------------------------------------------------------------------------- */

@font-face {
	font-family: 'Minerva Modern';
	src: url('fonts/MinervaModern-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Minerva Modern';
	src: url('fonts/MinervaModern-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Minerva Modern';
	src: url('fonts/MinervaModern-Black.woff2') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

/* -------------------------------------------------------------------------
   2. Tokens de marca (valores medidos sobre los comps de diseno)
   ------------------------------------------------------------------------- */

:root {
	--pv-navy: #000018;
	--pv-cream: #ECE6E2;
	--pv-gold: #A08E61;
	--pv-gold-line: #B4975A;
	--pv-white: #FFFFFF;
	--pv-gray: #808080;
	--pv-teal: #00446A;
	--pv-font-heading: 'Minerva Modern', Georgia, 'Times New Roman', serif;
	--pv-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
	--pv-radius-card: 12px;
	--pv-radius-button: 16px;
}

/* Inter se sirve como fuente VARIABLE con eje optico (css2 `opsz,wght@14..32,
   300..700`, encolada por functions.php en lugar de la v1 de Elementor). Con el
   eje activo el navegador ajusta trazo y ancho de glifo al tamano real de cada
   texto; `auto` es el valor por defecto de la propiedad, pero se declara para
   que ningun reset del tema padre o de un plugin lo apague. */
body {
	font-optical-sizing: auto;
}

/* -------------------------------------------------------------------------
   3. Selector de idioma (shortcode [pll_switcher])
   ------------------------------------------------------------------------- */

.pv-lang {
	position: relative;
	display: inline-block;
	font-family: var(--pv-font-body);
	font-size: 14px;
	line-height: 1;
}

/* Puente invisible de hover: el contenedor solo mide lo que ocupa el boton (el
   panel es position:absolute y no aporta alto), y el panel arranca 6px mas abajo
   (.pv-lang__list, margin-top). Ese hueco de 6px entre ambas cajas queda fuera de
   :hover de ambas: al bajar el mouse hacia el panel se pierde el hover y el panel
   se cierra antes de llegar a las opciones (bug 2026-09-02). Este pseudo-elemento
   cubre exactamente ese hueco (mismo ancho/centrado que el panel) sin alterar la
   posicion real del panel — top:100% toma como referencia la MISMA caja sin padding
   que usa .pv-lang__list, a diferencia de agrandar el padding del contenedor (que
   correria el 100% del panel y no cerraria nada). */
.pv-lang::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	min-width: 74px;
	height: 6px;
	transform: translateX(-50%);
}

.pv-lang__toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 4px 2px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--pv-cream);
	font: inherit;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}

.pv-lang__toggle:hover,
.pv-lang__toggle:focus,
.pv-lang__toggle:focus-visible,
.pv-lang__toggle:active {
	background: none;
	color: var(--pv-white);
	outline: none;
	box-shadow: none;
}

.pv-lang__caret {
	display: inline-block;
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 4px solid currentColor;
	transition: transform 0.15s ease;
}

.pv-lang__toggle[aria-expanded="true"] .pv-lang__caret {
	transform: rotate(180deg);
}

.pv-lang__list {
	position: absolute;
	z-index: 99;
	top: 100%;
	left: 50%;
	min-width: 74px;
	margin: 6px 0 0;
	padding: 6px 0;
	list-style: none;
	background: var(--pv-navy);
	border: 1px solid rgba(236, 230, 226, 0.25);
	transform: translateX(-50%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.pv-lang.is-open .pv-lang__list,
.pv-lang:hover .pv-lang__list,
.pv-lang:focus-within .pv-lang__list {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.pv-lang__list li {
	margin: 0;
	padding: 0;
}

.pv-lang__list a {
	display: block;
	padding: 7px 14px;
	color: var(--pv-cream);
	font-weight: 400;
	letter-spacing: 0.04em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.pv-lang__list a:hover,
.pv-lang__list a:focus {
	color: var(--pv-gold);
	text-decoration: none;
}

.pv-lang__list li.is-current a {
	color: var(--pv-gold);
}

/* -------------------------------------------------------------------------
   4. Formulario Contact Form 7 — inputs de linea inferior fina
   ------------------------------------------------------------------------- */

.pv-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.pv-form input[type="text"],
.pv-form input[type="email"],
.pv-form input[type="tel"],
.pv-form textarea {
	width: 100%;
	padding: 8px 0;
	border: 0;
	border-bottom: 1px solid #808285;
	border-radius: 0;
	background: transparent;
	color: var(--pv-navy);
	font-family: var(--pv-font-body);
	font-size: 14px;
}

.pv-form input[type="text"]:focus,
.pv-form input[type="email"]:focus,
.pv-form input[type="tel"]:focus,
.pv-form textarea:focus {
	border-bottom-color: var(--pv-gold);
	outline: none;
}

.pv-form input[type="submit"] {
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--pv-gold);
	background: none;
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.pv-form input[type="submit"]:hover {
	background: none;
	color: var(--pv-gold-line);
}

/* -------------------------------------------------------------------------
   5. Header flotante — transparente y superpuesto sobre el hero
   ------------------------------------------------------------------------- */

#page {
	position: relative;
}

/* Header Footer Builder trae `.ehf-header #masthead { position: relative }`,
   por eso hace falta ganarle en especificidad para el header flotante. */
body.ehf-header #masthead {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 99;
}

/* Escape hatch: paginas sin hero (el header vuelve a ocupar espacio en el flujo). */
body.pv-no-overlay.ehf-header #masthead {
	position: static;
}

/* El drawer (dentro de #masthead) y su scrim (hijo directo de body) NO
   comparten contexto de apilamiento: #masthead ya tiene su propio z-index:99,
   asi que CUALQUIER z-index interno del drawer queda acotado a ese contexto y
   pierde contra el scrim (z-index:9999, contexto raiz) sin importar el valor.
   Mientras el drawer esta abierto (mismo momento en que se bloquea el scroll
   del body) el header sube por encima del scrim, sin tocar su z-index normal
   el resto del tiempo. */
body.pv-drawer-locked.ehf-header #masthead {
	z-index: 10001;
}

.pv-header-logo img,
.pv-footer-lockup img {
	display: block;
}

/* Separador vertical entre el selector de idioma y los iconos sociales
   (comp: linea de 22px de alto a x=1611.5). */
/* El contenedor de iconos no debe estirarse al ancho de la columna: si lo hace,
   en mobile empuja el selector de idioma a una segunda fila y descoloca el
   separador vertical. */
.pv-header .pv-header-social {
	position: relative;
	width: auto;
	flex: 0 0 auto;
}

.pv-header-social::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -21px;
	width: 1px;
	height: 22px;
	background: var(--pv-cream);
	opacity: 0.7;
	transform: translateY(-50%);
}

.pv-header-lang {
	line-height: 1;
}

.pv-header-menu .hfe-nav-menu a.hfe-menu-item {
	transition: color 0.15s ease;
}

@media (max-width: 767px) {
	/* El separador es un detalle del comp de escritorio; en mobile estorba. */
	.pv-header-social::before {
		display: none;
	}
}

/* Boton propio y boton de cerrar: invisibles por defecto (desktop). Sin esta
   regla de base, un <button> sin ninguna clase con estilo cae al default del
   navegador (inline-block visible) apenas el media query de abajo deja de
   aplicar - se veria un boton fantasma en el header de escritorio. */
.pv-drawer-toggle,
.pv-drawer-close {
	display: none;
}

/* Menu mobile/tablet: drawer que entra desde la derecha (estandar de MD).
   Reemplaza el panel horizontal a lo ancho del header que usaba antes el
   toggle nativo de Header Footer Elementor.
   La columna del menu (`.pv-header-col--nav`, hoy solo el widget de
   navegacion) pasa a ser el panel del drawer: se saca del flujo con
   `position:fixed` y se desliza con `transform`. El boton que lo abre NO es
   el toggle nativo del plugin (se oculta mas abajo): es propio, inyectado por
   `pv-header-drawer.js` junto al selector de idioma, para poder controlar
   swipe/foco/scroll sin pelear con el JS del plugin. */
@media (max-width: 1024px) {

	.pv-header-col--actions {
		flex-wrap: nowrap !important;
		align-items: center;
		gap: 14px;
	}

	.pv-header-lang {
		flex: 0 0 auto;
	}

	/* El panel abierto es `position:fixed;top:0` y cubre tambien la fila del
	   header (asi tapa el logo en pantallas chicas, comportamiento esperado
	   de un drawer al 90vw) - pero el boton que lo abre tiene que seguir
	   siendo el mismo que lo cierra. z-index por encima del panel (10000). */
	.pv-drawer-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		position: relative;
		z-index: 10002;
		width: 30px;
		height: 30px;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
	}

	/* El tema padre (reset.css) fija color/background/hover en el elemento
	   <button> generico (selector por etiqueta + :hover/:focus), y esa regla
	   gana contra esta clase en los estados de interaccion porque aqui nunca
	   se declaro `color` propio ni se cubrian `:hover`/`:focus` (solo
	   `:focus-visible` en el boton de cerrar) - por eso el boton se veia
	   rosa/blanco al enfocarlo o tocarlo. Mismos controles que el resto del
	   header: fondo transparente, icono crema. */
	.pv-drawer-toggle,
	.pv-drawer-toggle:hover,
	.pv-drawer-toggle:focus,
	.pv-drawer-toggle:focus-visible {
		color: var(--pv-cream);
		background-color: transparent;
	}

	/* Mientras el drawer esta abierto, el propio boton que lo abre queda
	   oculto: la convencion pasa a ser una sola X, la del panel. Vuelve a
	   aparecer solo cuando se cierra (se saca la clase del body). */
	body.pv-drawer-locked .pv-drawer-toggle {
		display: none;
	}

	.pv-drawer-toggle__bars,
	.pv-drawer-toggle__bars::before,
	.pv-drawer-toggle__bars::after {
		display: block;
		width: 22px;
		height: 2px;
		background: var(--pv-cream);
		transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
	}

	.pv-drawer-toggle__bars {
		position: relative;
	}

	.pv-drawer-toggle__bars::before,
	.pv-drawer-toggle__bars::after {
		content: "";
		position: absolute;
		left: 0;
	}

	.pv-drawer-toggle__bars::before {
		top: -7px;
	}

	.pv-drawer-toggle__bars::after {
		top: 7px;
	}

	.pv-drawer-toggle[aria-expanded="true"] .pv-drawer-toggle__bars {
		background: transparent;
	}

	.pv-drawer-toggle[aria-expanded="true"] .pv-drawer-toggle__bars::before {
		top: 0;
		transform: rotate(45deg);
	}

	.pv-drawer-toggle[aria-expanded="true"] .pv-drawer-toggle__bars::after {
		top: 0;
		transform: rotate(-45deg);
	}

	/* El toggle nativo del plugin queda oculto: el drawer usa el boton propio. */
	.pv-header-menu .hfe-nav-menu__toggle {
		display: none !important;
	}

	/* Elementor 4.2.4 consume `--flex-direction`/`--justify-content` con
	   especificidad (0,2,0) via `.e-con.e-flex`; una sola clase pierde siempre
	   sin importar el orden de carga - hay que calificar con las TRES clases
	   y declarar la variable ademas de la propiedad. */
	.pv-header-col--nav.e-con.e-flex {
		--display: flex;
		--flex-direction: column;
		--justify-content: flex-start;
		--align-items: stretch;
		position: fixed !important;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(90vw, 420px);
		max-width: 100vw;
		height: 100vh;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		background: var(--pv-navy);
		box-shadow: -8px 0 24px rgba(0, 0, 24, 0.35);
		/* El scroll ya no vive en el panel entero (ver `.pv-header-menu` mas
		   abajo): asi el bloque social queda siempre reservado al pie, visible
		   sin importar el alto del viewport ni cuantos items tenga el menu. */
		overflow-y: hidden;
		z-index: 10000;
		transform: translateX(100%);
		transition: transform 300ms cubic-bezier(0.22, 0.61, 0.36, 1);
	}

	/* Mientras el JS arrastra el panel con el dedo escribe `transform` inline
	   y esta clase apaga la transicion para que siga al dedo sin demora. */
	.pv-header-col--nav.e-con.e-flex.pv-drawer-dragging {
		transition: none !important;
	}

	/* Misma calificacion de tres clases que la regla base (arriba): con dos
	   clases nomas esta regla pierde contra `.pv-header-col--nav.e-con.e-flex`
	   sin importar el orden de carga, y el panel nunca se mueve. */
	.pv-header-col--nav.e-con.e-flex.is-open {
		transform: translateX(0);
	}

	/* Restituye lo que Header Footer Elementor esconde por defecto en su
	   breakpoint "tablet" (opacity/visibility/height en 0 hasta que SU JS
	   agregue `.hfe-active-menu` al toggle nativo - algo que ya no pasa
	   porque ese toggle esta oculto arriba). El acordeon de submenus
	   (EXCURSIONES) no se toca: sigue con su propio manejador de click. */
	.pv-header-col--nav .hfe-nav-menu__layout-horizontal,
	.pv-header-col--nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
		visibility: visible !important;
		opacity: 1 !important;
		height: auto !important;
	}

	/* Region que scrollea DENTRO del panel: `flex:1` le da todo el alto
	   sobrante y `min-height:0` es necesario para que un item flex column
	   pueda encogerse por debajo de su contenido y activar su propio
	   `overflow-y` (sin esto el flex-item se estira al alto del contenido y
	   nunca aparece scrollbar). Asi el bloque social (`flex:0 0 auto` mas
	   abajo) siempre recibe su espacio reservado, sin competir por alto. */
	.pv-header-menu {
		position: static !important;
		width: 100%;
		padding: 72px 24px 24px;
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
	}

	.pv-header-menu .hfe-nav-menu,
	.pv-header-menu li.menu-item,
	.pv-header-menu ul.sub-menu {
		width: 100%;
	}

	/* Boton de cerrar, inyectado por JS como primer hijo del panel. Va a la
	   IZQUIERDA: el boton que abre (arriba a la derecha, fuera del panel)
	   se muta en X al abrir - por eso funciona tambien como cierre - y ya
	   ocupa esa esquina con z-index por encima del panel. Ponerlas las dos a
	   la derecha las superpone y una de las dos queda inalcanzable. */
	.pv-drawer-close {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 16px;
		left: 20px;
		width: 32px;
		height: 32px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--pv-cream);
		font-size: 28px;
		line-height: 1;
		cursor: pointer;
	}

	/* Mismo problema de cascada que el toggle de arriba: reset.css del tema
	   padre fija `background-color` Y `color` en `button:hover`/`button:focus`
	   (0,1,1), que le gana a la regla base de esta clase (0,1,0) - la clase
	   de aca arriba solo cubria `:focus-visible` para el color, pero el JS
	   enfoca este boton con `.focus()` apenas se abre el panel, y ese foco
	   programatico entra en `:focus` (fondo rosa, texto blanco) sin pasar
	   siempre por `:focus-visible`. */
	.pv-drawer-close,
	.pv-drawer-close:hover,
	.pv-drawer-close:focus,
	.pv-drawer-close:focus-visible {
		background-color: transparent;
		color: var(--pv-cream);
	}

	.pv-drawer-close:hover,
	.pv-drawer-close:focus-visible {
		color: var(--pv-gold);
	}

	/* Copia de los iconos sociales dentro del drawer: fila unica al pie,
	   empujada abajo por el espacio sobrante. El original (mismas 4 redes,
	   en el header) queda oculto en este mismo rango por las clases nativas
	   de Elementor `elementor-hidden-tablet`/`elementor-hidden-mobile` - el
	   desktop no cambia, ese nodo no se toco. */
	.pv-header-social--drawer {
		flex: 0 0 auto;
		justify-content: center !important;
		gap: 24px !important;
		width: 100% !important;
		padding: 24px 24px 32px;
		border-top: 1px solid rgba(236, 230, 226, 0.15);
	}

	.pv-header-social--drawer::before {
		display: none;
	}

	.pv-header-social--drawer .pv-header-icon img {
		width: 28px;
	}
}

/* Scrim del drawer, y bloqueo del scroll del body mientras esta abierto
   (restaurado al cerrar, sin saltos de posicion: el bloqueo es `overflow`,
   nunca `position`). */
.pv-drawer-scrim {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 24, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 300ms cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s linear 300ms;
	z-index: 9999;
}

.pv-drawer-scrim.is-open {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}

html.pv-drawer-locked,
body.pv-drawer-locked {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.pv-header-col--nav.e-con.e-flex,
	.pv-drawer-scrim,
	.pv-drawer-toggle__bars,
	.pv-drawer-toggle__bars::before,
	.pv-drawer-toggle__bars::after {
		transition-duration: 0.001ms !important;
	}
}

/* -------------------------------------------------------------------------
   6. Footer — marca de agua del ala y columnas
   ------------------------------------------------------------------------- */

.pv-footer {
	position: relative;
	overflow: hidden;
}

.pv-footer-watermark {
	position: absolute !important;
	top: 28px;
	left: 50%;
	z-index: 0;
	transform: translateX(-50%);
	pointer-events: none;
}

.pv-footer-watermark img {
	pointer-events: none;
	user-select: none;
}

.pv-footer-cols,
.pv-footer-legal {
	position: relative;
	z-index: 1;
}

.pv-footer-menu .hfe-nav-menu a.hfe-menu-item,
.pv-footer-menu .hfe-nav-menu a.hfe-sub-menu-item {
	padding-right: 0;
	padding-left: 0;
}

.pv-footer-contact p {
	margin: 0 0 28px;
}

.pv-footer-contact p:last-child {
	margin-bottom: 0;
}

.pv-footer-legal-text p {
	margin: 0;
}

.pv-footer-legal a {
	color: var(--pv-cream);
	text-decoration: none;
}

.pv-footer-legal a:hover {
	color: var(--pv-gold);
}

/* Los tres enlaces legales viven DENTRO de la linea de copyright, que es
   blanca: si tomaran el crema de la regla de arriba se verian como un color
   distinto en medio de la misma frase. Heredan el color del parrafo, y el
   hover dorado los distingue como enlaces. */
.pv-footer-legal-text a {
	color: inherit;
}

.pv-footer-legal-text a:hover,
.pv-footer-legal-text a:focus-visible {
	color: var(--pv-gold);
}

/* -------------------------------------------------------------------------
   7. Encabezados dentro de widgets Heading de Elementor
   Elementor aplica a TODO widget Heading la tipografia global "Primary"
   (Minerva 68px) sin mirar la etiqueta, y eso pisa el Theme Style del kit
   (que si distingue h1..h6). Estas reglas restituyen el comportamiento por
   etiqueta con los MISMOS valores del kit, y siguen siendo pisables por los
   ajustes de cada widget (que tienen mas especificidad).
   ------------------------------------------------------------------------- */

.elementor-widget-heading h1.elementor-heading-title {
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 68px;
	font-weight: 400;
	line-height: 1em;
}

.elementor-widget-heading h2.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 1.083em;
}

.elementor-widget-heading h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.111em;
}

.elementor-widget-heading h4.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.15em;
}

.elementor-widget-heading h5.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.292em;
}

.elementor-widget-heading h6.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.3em;
}

/* Escalado de titulos en pantallas chicas. Los comps son solo de escritorio
   (1980px): estos tamanios son una derivacion de build, no un valor medido. */
@media (max-width: 1024px) {
	.elementor-widget-heading h1.elementor-heading-title { font-size: 52px; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 38px; }
	.elementor-widget-heading h3.elementor-heading-title { font-size: 30px; }
}

@media (max-width: 767px) {
	.elementor-widget-heading h1.elementor-heading-title { font-size: 38px; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 30px; }
	.elementor-widget-heading h3.elementor-heading-title { font-size: 24px; }
}

/* -------------------------------------------------------------------------
   8. Guardas de overflow horizontal
   ------------------------------------------------------------------------- */

html,
body {
	overflow-x: hidden;
	max-width: 100%;
}

.pv-footer-legal-text p {
	overflow-wrap: break-word;
	word-break: break-word;
}

/* -------------------------------------------------------------------------
   9. Plantilla de ficha de excursion — patron reutilizable
   Medidas tomadas del comp (pagina de 1980px; 1pt de diseno = 1px de build) y
   del contenedor de contenido del sitio, de 1440px, el mismo del header/footer.
   Convencion: la maquetacion vive en esta hoja; los textos y las fotos viven
   en widgets de Elementor para que se editen desde el panel, sin tocar codigo.
   ------------------------------------------------------------------------- */

:root {
	--pv-container: 1440px;
	--pv-gold-soft: #B4985A;
	--pv-gray-soft: #808285;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* --- 9.0 Base de contenedores de la ficha -------------------------------
   Los contenedores de Elementor traen gap 20px y padding propios; la ficha
   parte de cero y declara cada medida explicitamente mas abajo. */

.pv-hero,
.pv-hero__rule,
.pv-vivir,
.pv-slider,
.pv-slider__media,
.pv-slide,
.pv-slider__card,
.pv-slide-panel,
.pv-slider__controls,
.pv-modalidades-head,
.pv-modalidades-cards,
.pv-modalidades__grid,
.pv-anchors,
.pv-modalidad,
.pv-modalidad__inner,
.pv-modalidad__card,
.pv-modalidad__actions,
.pv-vuelo,
.pv-vuelo__card,
.pv-vuelo__actions,
.pv-conect,
.pv-conect__inner,
.pv-conect__text,
.pv-conect__media,
.pv-card-modalidad,
.pv-card-modalidad__media,
.pv-card-modalidad__body,
.pv-fondo,
.pv-info,
.pv-info__grid,
.pv-info-card,
.pv-faq,
.pv-accordion,
.pv-acc-item,
.pv-acc__a,
.pv-form-section,
.pv-form-card,
.pv-banner {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	gap: 0;
	padding: 0;
}

/* --- 9.1 Hero de ficha --------------------------------------------------- */

.pv-hero {
	min-height: 1025px;
	/* El pie del hero mide 59px bajo el CTA en TODOS los comps de ficha (1025 -
	   966). Declararlo explicito es lo que permite anclar la linea fina al pie
	   con `margin-top: auto` y que caiga en y=864 en las cinco fichas, sin
	   compensaciones por pagina. */
	padding: 355px 0 59px;
	background-position: center center;
	background-size: cover;
}

.pv-hero .pv-hero__title h1.elementor-heading-title {
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 68px;
	font-weight: 400;
	line-height: 70px;
	text-align: center;
}

.pv-hero .pv-hero__lead {
	margin-top: 25px;
}

.pv-hero .pv-hero__lead p {
	max-width: 470px;
	margin: 0 auto;
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 16px;
	line-height: 22px;
	text-align: center;
}

/* La linea fina del hero esta a y=864 en TODOS los comps de ficha, sin importar
   cuantas lineas ocupe el H1. Con un margen fijo cada ficha necesitaba su propia
   compensacion (spacer, margenes de la bajada, margin-top a medida). Anclada al
   pie por `margin-top: auto`, el sobrante del hero se lo lleva ella y la linea
   cae sola en 864 = 1025 - 59 (pie) - 102 (linea + 53 de aire + 48 del CTA). */
.pv-hero .pv-hero__rule {
	width: 100%;
	min-height: 1px;
	height: 1px;
	margin-top: auto;
	background: rgba(255, 255, 255, 0.09);
}

.pv-hero .pv-hero__cta {
	margin-top: 53px;
	text-align: center;
}

.pv-hero .pv-hero__cta .elementor-button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--pv-cream);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.pv-hero .pv-hero__cta .elementor-button:hover,
.pv-hero .pv-hero__cta .elementor-button:focus {
	background: none;
	color: var(--pv-white);
}

.pv-hero .pv-hero__cta .elementor-button-content-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pv-hero .pv-hero__cta .elementor-button-content-wrapper::after {
	content: "";
	display: block;
	width: 16px;
	height: 9px;
	margin: 10px auto 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9'%3E%3Cpath d='M1 1l7 6.5L15 1' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9'%3E%3Cpath d='M1 1l7 6.5L15 1' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* --- 9.2 Titulos y bajadas de seccion ----------------------------------- */

.pv-section-lead {
	margin-top: 38px;
}

.pv-section-lead p {
	max-width: 640px;
	margin: 0 auto;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	line-height: 22px;
	text-align: center;
}

.pv-title-center h2.elementor-heading-title {
	text-align: center;
}

/* Titulos de seccion en dorado 36px (Informacion util, Preguntas frecuentes,
   Consultar disponibilidad). Semanticamente son h2; el kit reserva 48px navy
   para h2, asi que la ficha los baja por clase. */
.pv-title-gold h2.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 36px;
	font-weight: 400;
	line-height: 40px;
	text-align: center;
}

.pv-eyebrow div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 31px;
	letter-spacing: 0.6px;
	text-align: center;
	text-transform: uppercase;
}

/* --- 9.3 Slider "Que vas a vivir" (patron reutilizable) ------------------ */

.pv-vivir {
	padding: 79px 0 90px;
	background-color: var(--pv-cream);
}

.pv-vivir .pv-slider {
	position: relative;
	width: 100%;
	max-width: var(--pv-container);
	margin: 93px auto 0;
}

.pv-slider .pv-slider__media {
	position: relative;
	width: 1015px;
	max-width: 100%;
	margin-left: auto;
	overflow: hidden;
	border-radius: var(--pv-radius-card);
	aspect-ratio: 1015 / 679;
}

.pv-slider .pv-slider__media > .pv-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 0.45s ease;
}

.pv-slider .pv-slider__media > .pv-slide.is-active {
	opacity: 1;
}

.pv-slider .pv-slide__foto,
.pv-slider .pv-slide__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* La marca de agua viene quemada en las fotos 2 y 3; el slide 1 la recibe
   como widget de imagen, en la misma posicion que marca el comp. */
.pv-slider .pv-slide__marca {
	position: absolute;
	top: 29px;
	right: 34px;
	z-index: 2;
	width: 140px;
	height: auto;
	opacity: 0.34;
	pointer-events: none;
}

.pv-slider .pv-slide__marca img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.pv-slider .pv-slider__card {
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 3;
	width: 460px;
	height: 444px;
	border-radius: var(--pv-radius-card);
	background: var(--pv-white);
	box-shadow: 0 18px 44px rgba(0, 0, 24, 0.10);
	transform: translateY(-50%);
}

/* `width: auto` es obligatorio: Elementor le pone `--width: 100%` al contenedor
   y, con `left`/`right` declarados, el panel se salia 34px por la derecha de la
   card en las cinco fichas. Con auto, el ancho lo resuelven los dos anclajes. */
.pv-slider .pv-slider__card > .pv-slide-panel {
	position: absolute;
	top: 37px;
	right: 34px;
	left: 34px;
	width: auto;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.pv-slider .pv-slider__card > .pv-slide-panel.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* Bajada por slide dentro del panel. Dos nombres de clase conviven en las
   fichas (`pv-slider__stext` y `pv-slide__stext`): la tipografia es la misma y
   se declara una sola vez. Los margenes van con especificidad (0,2,0) a
   proposito, para que un margen puesto por setting de Elementor en el widget
   (0,3,0) siga mandando -- es como lo resuelve la ficha de 4x4. */
.pv-slide-panel .pv-slider__stext {
	margin-top: 22px;
}

.pv-slide-panel .pv-slide__stext {
	margin-top: 26px;
}

.pv-slider .pv-slide-panel .pv-slider__stext p,
.pv-slider .pv-slide-panel .pv-slide__stext p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
}

.pv-slider .pv-slider__count div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 18px;
	font-weight: 400;
	line-height: 23px;
}

.pv-slider .pv-slider__stitle {
	margin-top: 25px;
}

.pv-slider .pv-slider__stitle h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 36px;
	font-weight: 400;
	line-height: 40px;
}

.pv-slider .pv-slider__stitle h3.elementor-heading-title::after {
	content: "";
	display: block;
	width: 88px;
	height: 1px;
	margin-top: 21px;
	background: var(--pv-gold-line);
}

.pv-slider .pv-slider__controls {
	position: absolute;
	right: 34px;
	bottom: 31px;
	left: 34px;
}

.pv-slider__nav {
	display: flex;
	align-items: center;
}

.pv-slider__arrow {
	display: inline-flex;
	align-items: center;
	width: 31px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--pv-gray);
	cursor: pointer;
	transition: color 0.15s ease;
}

.pv-slider__arrow:hover,
.pv-slider__arrow:focus-visible,
.pv-slider__arrow:active {
	background: none;
	color: var(--pv-gold);
}

.pv-slider__next-label {
	margin: 0 0 0 26px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.8px;
	line-height: 20px;
	text-transform: uppercase;
	cursor: pointer;
	transition: color 0.15s ease;
}

.pv-slider__next-label:hover,
.pv-slider__next-label:focus-visible,
.pv-slider__next-label:active {
	background: none;
	color: var(--pv-gold);
}

/* --- 9.4 Cards de modalidad --------------------------------------------- */

.pv-modalidades-head {
	padding: 56px 0 58px;
	background-color: var(--pv-cream);
}

.pv-modalidades-head .pv-title-center {
	margin-top: 22px;
}

.pv-modalidades-cards {
	min-height: 984px;
	padding: 165px 0 166px;
	background-position: center center;
	background-size: cover;
}

.pv-modalidades-cards .pv-modalidades__grid {
	--display: flex;
	--flex-direction: row;
	--flex-wrap: wrap;
	--justify-content: center;
	--gap: 91px;
	--row-gap: 91px;
	--column-gap: 91px;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	gap: 91px;
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
}

.pv-modalidades__grid .pv-card-modalidad {
	width: 508px;
	max-width: 100%;
	overflow: hidden;
	border-radius: 18px;
	background: var(--pv-white);
}

.pv-card-modalidad .pv-card-modalidad__media {
	position: relative;
	width: 100%;
	aspect-ratio: 508 / 327;
}

.pv-card-modalidad .pv-card-modalidad__foto,
.pv-card-modalidad .pv-card-modalidad__foto img,
.pv-card-modalidad .pv-card-modalidad__foto a {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pv-card-modalidad .pv-card-modalidad__media::after {
	content: "";
	position: absolute;
	top: 33px;
	right: 32px;
	width: 43px;
	height: 43px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.30) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cpath d='M7.5 0v15M0 7.5h15' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 15px 15px no-repeat;
	pointer-events: none;
}

.pv-card-modalidad .pv-card-modalidad__body {
	display: flex;
	flex-direction: column;
	min-height: 326px;
	padding: 25px 56px 41px;
}

.pv-card-modalidad .pv-card-modalidad__num div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 18px;
	font-weight: 400;
	line-height: 23px;
}

.pv-card-modalidad .pv-card-modalidad__title {
	margin-top: 5px;
}

.pv-card-modalidad .pv-card-modalidad__title h3.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 36px;
	font-weight: 400;
	line-height: 40px;
}

.pv-card-modalidad .pv-card-modalidad__text {
	margin-top: 15px;
}

.pv-card-modalidad .pv-card-modalidad__text p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
}

.pv-card-modalidad .pv-btn-consultar {
	margin-top: auto;
	padding-top: 24px;
}

.pv-btn-consultar .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 156px;
	height: 35px;
	padding: 0 0 0 21px;
	border: 0;
	border-radius: var(--pv-radius-button);
	background: var(--pv-gold);
	/* El rotulo va en el azul de la marca y no en crema: sobre el dorado, el crema
	   queda en 2,6 a 1 de contraste y a 12px es ilegible para buena parte de las
	   personas (y lo marca cualquier auditoria de accesibilidad). Con el azul son
	   6,4 a 1. El dorado del boton no se toca. */
	color: var(--pv-navy);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	line-height: 1;
	text-transform: uppercase;
}

.pv-btn-consultar .elementor-button:hover,
.pv-btn-consultar .elementor-button:focus {
	background: var(--pv-gold-soft);
	color: var(--pv-navy);
}

.pv-btn-consultar .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

/* Icono de WhatsApp del boton: geometria EXACTA del comp (extraida del vector del
   PDF de diseno). El comp lo dibuja como burbuja crema con el auricular en el
   dorado del boton; aca el auricular va CALADO (fill-rule evenodd), de modo que
   deja ver el fondo real del boton y el icono sigue siendo fiel tambien en hover,
   donde el dorado cambia de tono. */
.pv-btn-consultar .elementor-button-content-wrapper::before {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.02 17.87'%3E%3Cpath fill='%23000018' fill-rule='evenodd' d='M9.01 0C4.04 0 0 4.01 0 8.93C0 10.89 0.64 12.7 1.72 14.17L0.59 17.49L4.05 16.39C5.48 17.33 7.18 17.87 9.01 17.87C13.97 17.87 18.02 13.86 18.02 8.93C18.02 4.01 13.97 0 9.01 0ZM14.42 11.38C14.35 11.27 14.18 11.21 13.91 11.07C13.65 10.95 12.36 10.31 12.12 10.23C11.88 10.14 11.71 10.1 11.53 10.36C11.35 10.62 10.85 11.21 10.7 11.38C10.54 11.55 10.39 11.58 10.13 11.45C9.87 11.31 9.02 11.04 8.02 10.15C7.24 9.46 6.71 8.61 6.56 8.35C6.4 8.09 6.54 7.95 6.67 7.82C6.79 7.7 6.94 7.51 7.06 7.36C7.19 7.21 7.24 7.1 7.33 6.92C7.41 6.75 7.37 6.6 7.3 6.47C7.24 6.34 6.72 5.06 6.5 4.54C6.28 4.01 6.06 4.1 5.9 4.1C5.75 4.1 5.58 4.08 5.4 4.08C5.23 4.08 4.94 4.15 4.7 4.4C4.46 4.67 3.78 5.3 3.78 6.58C3.78 7.86 4.72 9.1 4.86 9.27C4.99 9.45 6.67 12.16 9.34 13.21C12.01 14.25 12.01 13.9 12.49 13.86C12.97 13.82 14.05 13.23 14.27 12.62C14.48 12.01 14.48 11.49 14.42 11.38Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* --- 9.5 Fondo desvanecido (Informacion util + FAQ + formulario) ---------
   El tamanio del fondo NO se declara aca: con `cover` el alto del contenedor
   entra en la ecuacion y el fondo se re-escala cada vez que se abre una pregunta
   del acordeon (el contenedor crece y la imagen salta). El ajuste vive en el
   setting del contenedor de Elementor -- `background-size: 100% auto` + anclaje
   `top center` --, derivado solo del ANCHO y por lo tanto inmune al alto. La
   imagen de fondo trae ademas un degrade final hacia el crema horneado en el
   asset, para que la franja que queda por debajo (cuando el acordeon abre) sea
   continua. Declararlo aca seria ademas inutil: el CSS generado por Elementor
   gana en especificidad (0,3,0). */

.pv-fondo {
	background-color: var(--pv-cream);
}

/* --- 9.6 Grilla "Informacion util" -------------------------------------- */

.pv-fondo .pv-info {
	padding: 82px 0 0;
}

.pv-info .pv-info__grid {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 44px 50px;
	width: 100%;
	max-width: 1355px;
	margin: 50px auto 0;
}

.pv-info__grid .pv-info-card {
	min-height: 264px;
	padding: 20px 42px 24px;
	border: 1px solid rgba(128, 128, 128, 0.45);
	border-radius: var(--pv-radius-card);
	background: none;
}

.pv-info-card .pv-info-card__icon img {
	display: block;
	width: 53px;
	height: 53px;
}

/* Bajada opcional bajo el titulo de "Informacion util". */
.pv-info .pv-info__lead {
	--margin-block-start: 35px;
	--margin-block-end: 29px;
	margin-top: 35px;
	margin-bottom: 29px;
}

.pv-info .pv-info__lead p {
	max-width: 470px;
	margin: 0 auto;
	padding-bottom: 16px;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
	text-align: center;
}

/* Una parte de los iconos trae el anillo a 88px sobre un lienzo de 106 (medido
   sobre el alfa de los WebP): a 53px de caja rinden un anillo de 44px, contra
   los 53 que pide el diseno y que dan los iconos de lienzo ajustado.
   El modificador --pad los agranda a 53 x 106/88 = 63.84px y recupera los 53px
   de caja con margenes negativos, sin mover nada del resto de la card. */
.pv-info-card .pv-info-card__icon--pad img {
	width: 63.84px;
	height: 63.84px;
	margin: -5.42px 0 -5.42px -5.42px;
}

.pv-info-card .pv-info-card__title {
	margin-top: 14px;
}

.pv-info-card .pv-info-card__title h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 31px;
}

.pv-info-card .pv-info-card__text {
	margin-top: 11px;
}

.pv-info-card .pv-info-card__text p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
}

/* --- 9.7 Acordeon de preguntas frecuentes (patron reutilizable) ---------- */

.pv-fondo .pv-faq {
	padding: 119px 0 0;
}

.pv-faq .pv-accordion {
	width: 100%;
	max-width: 823px;
	margin: 55px auto 0;
	border-top: 1px solid var(--pv-gold-soft);
}

.pv-accordion .pv-acc__q {
	position: relative;
	padding: 12px 40px;
	cursor: pointer;
}

.pv-accordion .pv-acc__q div.elementor-heading-title {
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	text-align: center;
}

.pv-accordion .pv-acc__q::before,
.pv-accordion .pv-acc__q::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	background: var(--pv-gold-soft);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.pv-accordion .pv-acc__q::before {
	width: 17px;
	height: 2px;
	margin-top: -1px;
}

.pv-accordion .pv-acc__q::after {
	right: 7.5px;
	width: 2px;
	height: 17px;
	margin-top: -8.5px;
}

.pv-accordion .pv-acc-item.is-open .pv-acc__q::before {
	background: #818386;
}

.pv-accordion .pv-acc-item.is-open .pv-acc__q::after {
	opacity: 0;
	transform: rotate(90deg);
}

.pv-accordion .pv-acc__a {
	--display: grid;
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease;
}

.pv-accordion .pv-acc-item.is-open .pv-acc__a {
	grid-template-rows: 1fr;
}

.pv-accordion .pv-acc__a > * {
	min-height: 0;
	overflow: hidden;
}

.pv-accordion .pv-acc__a p {
	margin: 0;
	padding-bottom: 67px;
	color: #818386;
	font-family: var(--pv-font-body);
	font-size: 14px;
	font-weight: 300;
	line-height: 21px;
	text-align: center;
}

/* --- 9.8 Card del formulario -------------------------------------------- */

.pv-fondo .pv-form-section {
	padding: 123px 0 161px;
}

.pv-form-section .pv-form-card {
	width: 968px;
	max-width: 100%;
	min-height: 497px;
	margin: 0 auto;
	padding: 46px 64px 59px;
	border-radius: var(--pv-radius-card);
	background: var(--pv-white);
}

.pv-form-card .pv-form-card__title h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	margin-top: 39px;
	background: var(--pv-gold);
}

/* --- 9.9 Banner de WhatsApp --------------------------------------------- */

.pv-banner {
	min-height: 403px;
	padding: 69px 0 27px;
	background-color: var(--pv-teal);
	background-position: top center;
	background-size: cover;
}

.pv-banner .pv-banner__icon img {
	display: block;
	width: 46px;
	height: 46px;
	margin: 0 auto;
}

.pv-banner .pv-banner__title {
	margin-top: 21px;
}

.pv-banner .pv-banner__title h3.elementor-heading-title {
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 24px;
	font-weight: 500;
	line-height: 34px;
	text-align: center;
}

.pv-banner .pv-banner__title h3.elementor-heading-title::after {
	content: "";
	display: block;
	width: 91px;
	height: 1px;
	margin: 13px auto 0;
	background: var(--pv-gold);
}

.pv-banner .pv-banner__text {
	margin-top: 21px;
}

.pv-banner .pv-banner__text p {
	max-width: 480px;
	margin: 0 auto;
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
	text-align: center;
}

.pv-banner .pv-banner__top {
	margin-top: 64px;
	text-align: center;
}

/* El aire entre el circulo y la palabra mide 11.76px en el vector de LOS NUEVE
   comps que traen este componente (Home, Nosotros, Hospedaje, Galeria y las
   cinco fichas): misma distancia en todos, medida entre el borde inferior del
   circulo y la caja de la linea de texto. */
.pv-back-to-top {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 11.8px;
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	line-height: 17px;
	text-decoration: none;
	text-transform: uppercase;
}

.pv-back-to-top:hover,
.pv-back-to-top:focus {
	color: var(--pv-cream);
	text-decoration: none;
}

.pv-back-to-top__circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 33px;
	height: 33px;
	border-radius: 50%;
	background: var(--pv-gold-soft);
	color: var(--pv-cream);
}

/* --- 9.10 Formulario dentro de la card ---------------------------------- */

.pv-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0 20px;
}

.pv-form .pv-form__row {
	flex: 1 1 100%;
	margin: 0 0 12px;
}

.pv-form .pv-form__row--half {
	flex: 1 1 calc(50% - 10px);
	min-width: 220px;
}

.pv-form-card .pv-form-shortcode {
	margin-top: 11px;
}

.pv-form input[type="text"],
.pv-form input[type="email"],
.pv-form input[type="tel"] {
	display: block;
	height: 50px;
	padding: 0 0 35px;
	font-size: 11px;
	line-height: 15px;
}

.pv-form textarea {
	display: block;
	height: 135px;
	padding: 0;
	font-size: 11px;
	line-height: 15px;
	resize: vertical;
}

.pv-form input::placeholder,
.pv-form textarea::placeholder {
	color: var(--pv-gray-soft);
	opacity: 1;
}

.pv-form .pv-form__actions {
	position: relative;
	display: flex;
	flex: 1 1 100%;
	justify-content: flex-end;
	margin: 5px 0 0;
}

/* El spinner de CF7 ocupa lugar en la fila y corre el submit hacia adentro. */
.pv-form .wpcf7-spinner {
	position: absolute;
	top: 100%;
	right: 0;
	margin: 6px 0 0;
}

.pv-form input[type="submit"] {
	width: auto;
	padding: 0 0 7px;
	border: 0;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 0 100% / 57px 1px no-repeat;
	letter-spacing: 1px;
	line-height: 17px;
}

.pv-form input[type="submit"]:hover {
	background: linear-gradient(var(--pv-gold-soft), var(--pv-gold-soft)) 0 100% / 100% 1px no-repeat;
}

.pv-form .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #B03030;
	font-family: var(--pv-font-body);
	font-size: 11px;
}

.pv-form-card .wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 10px 14px;
	border-width: 1px;
	color: var(--pv-navy);
	font-family: var(--pv-font-body);
	font-size: 13px;
	text-align: center;
}

/* iOS hace zoom al enfocar inputs de menos de 16px: el comp pide 11px en
   escritorio, en mobile el tamanio sube para evitarlo. */
@media (max-width: 767px) {
	.pv-form input[type="text"],
	.pv-form input[type="email"],
	.pv-form input[type="tel"],
	.pv-form textarea {
		font-size: 16px;
	}
}

/* --- 9.12 Tiras de anclas a las secciones de la ficha --------------------
   Tres variantes segun el comp de cada ficha: lista con separadores verticales
   (Navegacion), fila con divisores a la derecha (Vuelos) y pastillas en dos
   filas (Trekking). El enlace es el mismo en las tres y se declara una vez. */

.pv-anchors .pv-anchors__item a,
.pv-vuelos-anchors .pv-anchors a,
.pv-anchor-nav a {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 31px;
	text-decoration: none;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-anchors .pv-anchors__item a:hover,
.pv-anchors .pv-anchors__item a:focus-visible,
.pv-vuelos-anchors .pv-anchors a:hover,
.pv-vuelos-anchors .pv-anchors a:focus-visible,
.pv-anchor-nav a:hover,
.pv-anchor-nav a:focus-visible {
	color: var(--pv-gold);
}

/* (a) Navegacion: lista con separador vertical entre items. */

.pv-modalidades-head .pv-anchors {
	margin-top: 35px;
}

.pv-anchors .pv-anchors__list {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-anchors .pv-anchors__item {
	display: flex;
	align-items: center;
	height: 52px;
	margin: 0;
	padding: 0 36px;
}

.pv-anchors .pv-anchors__item + .pv-anchors__item {
	border-left: 1px solid var(--pv-navy);
}

.pv-anchors .pv-anchors__item a {
	text-decoration: underline 1px transparent;
	text-underline-offset: 6px;
	transition:
		color var(--pv-t-fast) var(--pv-ease),
		text-decoration-color var(--pv-t-base) var(--pv-ease);
}

.pv-anchors .pv-anchors__item a:hover,
.pv-anchors .pv-anchors__item a:focus-visible {
	text-decoration-color: var(--pv-gold);
}

/* (b) Vuelos: fila con divisor a la derecha de cada enlace. El selector se
   califica con el widget contenedor porque la clase `.pv-anchors` la usan las
   dos fichas con estructuras internas distintas. */

.pv-vuelos-anchors {
	margin-top: 58px;
}

.pv-vuelos-anchors .pv-anchors {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}

.pv-vuelos-anchors .pv-anchors a {
	padding: 4px 23px;
	border-right: 1px solid rgba(0, 0, 24, 0.20);
}

.pv-vuelos-anchors .pv-anchors a:last-child {
	border-right: 0;
}

/* (c) Trekking: dos filas de pastillas con separador entre items. */

.pv-modalidades-head .pv-anchor-nav {
	margin-top: 50px;
}

.pv-anchor-nav__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-anchor-nav__row + .pv-anchor-nav__row {
	margin-top: 33px;
}

.pv-anchor-nav__row li {
	display: flex;
	align-items: center;
	margin: 0;
}

.pv-anchor-nav__row li + li::before {
	content: "";
	flex: 0 0 auto;
	width: 1px;
	height: 37px;
	margin: 0 22px;
	background: rgba(128, 128, 128, 0.35);
}

.pv-anchor-nav a {
	display: inline-block;
}

/* --- 9.13 Seccion de modalidad: foto a sangre + card crema flotante -------
   Patron de la ficha de Navegacion (cuatro modalidades alternando lado). */

.pv-modalidad {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 986px;
	padding: 60px 0;
	background-position: center center;
	background-size: cover;
}

#pv-full-day-clasica { min-height: 940px; }
#pv-full-day-premium { min-height: 985px; }

.pv-modalidad .pv-modalidad__inner {
	display: flex;
	flex-direction: row;
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
}

.pv-modalidad--right .pv-modalidad__inner { justify-content: flex-end; }
.pv-modalidad--left  .pv-modalidad__inner { justify-content: flex-start; }

.pv-modalidad .pv-modalidad__card {
	width: 686px;
	max-width: 100%;
	min-height: 615px;
	padding: 42px 70px 55px 55px;
	border-radius: var(--pv-radius-card);
	background: var(--pv-cream);
}

.pv-modalidad__card .pv-modalidad__title h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 52px;
}

.pv-modalidad__card .pv-modalidad__title h3.elementor-heading-title::after {
	content: "";
	display: block;
	width: 88px;
	height: 1px;
	margin-top: 27px;
	background: var(--pv-gold-line);
}

.pv-modalidad__card .pv-modalidad__text { margin-top: 25px; }

.pv-modalidad__card .pv-modalidad__text p,
.pv-modalidad__card .pv-modalidad__specs p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
}

/* Fila de specs: linea fina arriba de cada una y debajo de la ultima, con la
   etiqueta en negrita ocupando una columna fija, como en el comp. */
.pv-modalidad__card .pv-modalidad__specs { margin-top: 30px; }

/* Dos columnas reales (no sangria por inline-block): cuando el valor pasa a dos
   lineas, la segunda queda alineada bajo la primera, como en el comp. */
.pv-modalidad__card .pv-modalidad__specs p {
	display: flex;
	padding: 8px 0 9px;
	border-top: 1px solid rgba(128, 128, 128, 0.5);
	font-weight: 400; /* el comp usa Regular en el valor y Bold en la etiqueta */
}

.pv-modalidad__card .pv-modalidad__specs p:last-child {
	border-bottom: 1px solid rgba(128, 128, 128, 0.5);
}

.pv-modalidad__card .pv-modalidad__specs strong {
	flex: 0 0 108px;
	font-weight: 700;
}

.pv-modalidad__card .pv-modalidad__actions {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	margin-top: 27px;
}

.pv-modalidad__actions .pv-btn-consultar { width: auto; }
.pv-modalidad__actions .pv-modalidad__gallery { width: auto; }

/* --- 9.14 Cards de trekking, banner de varios dias ------------------------
   NOTA de especificidad (medida sobre frontend.min.css 4.2.3): el layout de un
   contenedor lo fija `.e-con.e-flex{--flex-direction:column}`, de (0,2,0). Una
   regla de una sola clase PIERDE aunque cargue despues: por eso cada regla de
   contenedor de esta familia va calificada con `.e-con.e-flex` -> (0,3,0), y
   declara la variable ADEMAS de la propiedad. */

.pv-trek.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--flex-direction:row;--justify-content:center;--align-items:center;gap:0;padding:0;min-height:985px;display:flex;flex-direction:row;align-items:center;justify-content:center;scroll-margin-top:110px}
.pv-trek__inner.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--flex-direction:row;--justify-content:flex-start;--align-items:center;gap:0;padding:0;width:100%;max-width:var(--pv-container);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}
/* El comp arranca la card impar en el CENTRO exacto de la pagina (x=990), no
   pegada al borde derecho del contenedor de 1440: es una grilla de 2 columnas
   de 720 con la card alineada a la izquierda de su columna. */
.pv-trek--right .pv-trek-card.e-con.e-flex{margin-left:50%}
.pv-trek-card.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:39px;--padding-block-end:55px;--padding-inline-start:55px;--padding-inline-end:63px;--flex-direction:column;--justify-content:flex-start;--align-items:stretch;gap:0;padding:39px 63px 55px 55px;width:631px;height:615px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border-radius:var(--pv-radius-card);background:var(--pv-cream)}
.pv-trek-card .pv-trek-card__title h3.elementor-heading-title{color:var(--pv-gold);font-family:var(--pv-font-heading);font-size:48px;font-weight:400;line-height:52px}
.pv-trek-card .pv-trek-card__title h3.elementor-heading-title::after{content:"";display:block;width:88px;height:1px;margin-top:22px;background:var(--pv-gold)}
/* La bajada absorbe el alto sobrante: asi las specs arrancan siempre al mismo
   offset dentro de la card, tenga el titulo una linea o dos, como el comp. */
.pv-trek-card .pv-trek-card__text{margin-top:31px;flex:1 1 auto;min-height:0}
.pv-trek-card .pv-trek-card__text p{margin:0;color:var(--pv-gray);font-family:var(--pv-font-body);font-size:16px;font-weight:300;line-height:22px}
.pv-trek-card .pv-trek-card__specs{flex:0 0 auto;width:513px;max-width:100%;border-bottom:1px solid rgba(128,128,128,.5)}
.pv-trek-card .pv-trek-card__specs p{display:flex;align-items:center;margin:0;min-height:40px;border-top:1px solid rgba(128,128,128,.5);color:var(--pv-gray);font-family:var(--pv-font-body);font-size:16px;font-weight:400;line-height:20px}
.pv-trek-card .pv-trek-card__specs p strong{flex:0 0 108px;font-weight:700}
.pv-trek-card .pv-trek-card__actions.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--flex-direction:row;--justify-content:space-between;--align-items:center;--flex-grow:0;gap:0;padding:0;display:flex;flex:0 0 auto;flex-direction:row;align-items:center;justify-content:space-between;width:513px;max-width:100%;margin-top:27px}
.pv-trek-card .pv-btn-consultar{width:auto;margin:0;padding:0}
.pv-trek-card .pv-trek-card__gallery{width:auto;margin:0}

/* Banner "?Buscas mas dias de montana?" */
.pv-mas-dias.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:107px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--flex-direction:column;--justify-content:flex-start;--align-items:center;gap:0;padding:107px 0 0;min-height:490px;background-color:var(--pv-cream);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.pv-mas-dias__inner.e-con.e-flex{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:85px;--padding-inline-end:85px;--flex-direction:column;--justify-content:flex-start;--align-items:flex-start;gap:0;padding:0 85px;width:100%;max-width:var(--pv-container);display:flex;flex-direction:column;align-items:flex-start}
.pv-mas-dias .pv-mas-dias__title h2.elementor-heading-title{color:var(--pv-navy);font-family:var(--pv-font-heading);font-size:48px;font-weight:400;line-height:52px;text-align:left}
.pv-mas-dias .pv-mas-dias__text{margin-top:30px}
.pv-mas-dias .pv-mas-dias__text p{margin:0;max-width:800px;color:var(--pv-gray);font-family:var(--pv-font-body);font-size:24px;font-weight:400;line-height:31px}
.pv-mas-dias .pv-mas-dias__text strong{font-weight:600}
.pv-mas-dias .pv-btn-consultar{margin-top:32px}

/* --- 9.15 Seccion de vuelo + Conectividad --------------------------------- */

/* Elementor pisa flex-direction/justify/align de los contenedores de primer
   nivel leyendo las custom properties: hay que declararlas, no alcanza con la
   propiedad CSS. Y `--flex-direction` viene de `.e-con.e-flex` (0,2,0), que le
   gana a una clase sola: por eso este selector lleva las tres clases. */
.e-con.e-flex.pv-vuelo { --flex-direction: row; }

.pv-vuelo {
	--display: flex;
	--justify-content: flex-end;
	--align-items: center;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	min-height: 984px;
	padding: 40px 304px 40px 0;
	background-position: center center;
	background-size: cover;
}

.pv-vuelo.pv-vuelo--left {
	--justify-content: flex-start;
	justify-content: flex-start;
	padding: 40px 0 40px 269px;
}

.pv-vuelo .pv-vuelo__card {
	width: 686px;
	max-width: 100%;
	padding: 42px 70px 47px 55px;
	border-radius: var(--pv-radius-card);
	background: var(--pv-cream);
}

.pv-vuelo .pv-vuelo__title h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 46px;
}

.pv-vuelo .pv-vuelo__title h3.elementor-heading-title::after {
	content: "";
	display: block;
	width: 88px;
	height: 1px;
	margin-top: 32px;
	background: var(--pv-gold-line);
}

.pv-vuelo .pv-vuelo__text { margin-top: 28px; }

.pv-vuelo .pv-vuelo__text p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 22px;
}

/* Specs: cada fila es una grilla etiqueta/valor con la linea fina del comp.
   La ultima linea la cierra el borde inferior del bloque. */
.pv-vuelo .pv-vuelo__specs {
	margin-top: 46px;
	border-bottom: 1px solid rgba(128, 128, 128, 0.5);
}

.pv-vuelo .pv-vuelo__specs p {
	display: grid;
	grid-template-columns: 108px 1fr;
	margin: 0;
	padding: 9px 0;
	border-top: 1px solid rgba(128, 128, 128, 0.5);
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
}

.pv-vuelo .pv-vuelo__specs p strong { font-weight: 700; }

.pv-vuelo .pv-vuelo__actions {
	--display: flex;
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: center;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	margin-top: 42px;
}

.pv-vuelo .pv-vuelo__actions .pv-btn-consultar { padding-top: 0; margin-top: 0; }

.pv-conect {
	position: relative;
	min-height: 984px;
	padding: 67px 0 149px;
	background-color: #D3E3EC;
	overflow: hidden;
}

.pv-conect .pv-conect__inner {
	--display: flex;
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: flex-start;
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: space-between;
	width: 100%;
	max-width: 1354px;
	margin: 0 auto;
	padding: 0 38px 0 43px;
}

.pv-conect .pv-conect__text {
	flex: 0 0 490px;
	width: 490px;
	max-width: 490px;
	padding-top: 136px;
}

.pv-conect .pv-conect__media {
	flex: 0 0 auto;
	width: auto;
}

.pv-conect .pv-conect__eyebrow div.elementor-heading-title { text-align: left; }

.pv-conect .pv-conect__title { margin-top: 21px; }

.pv-conect .pv-conect__title h2.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 50px;
	text-align: left;
}

.pv-conect .pv-conect__body { margin-top: 30px; }

.pv-conect .pv-conect__body p {
	margin: 0 0 12px;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
}

.pv-conect .pv-conect__body p:last-child { margin-bottom: 0; }
.pv-conect .pv-conect__body strong { font-weight: 600; }
.pv-conect .pv-conect__cta { margin-top: 36px; }

.pv-conect .pv-conect__media img {
	display: block;
	width: 592px;
	max-width: 100%;
	height: auto;
}

/* --- 9.16 "VER GALERIA" y sets ocultos del lightbox -----------------------
   Tres fichas lo nombran distinto (el nombre de clase ya esta en las paginas);
   la pastilla es la misma y se declara una vez. La flecha la pone
   `.pv-arrow-link` por ::after: NO va escrita en el texto. El subrayado corto
   del comp crece al ancho completo en hover. */

.pv-vergaleria,
.pv-modalidad__gallery .pv-modalidad__ver,
.pv-vuelo__galeria {
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	line-height: 17px;
	text-transform: uppercase;
	transition:
		background-size var(--pv-t-slow) var(--pv-ease),
		background-position var(--pv-t-slow) var(--pv-ease),
		color var(--pv-t-base) var(--pv-ease);
}

.pv-vergaleria {
	padding-bottom: 8px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 17px 100% / 57px 1px no-repeat;
}

.pv-modalidad__gallery .pv-modalidad__ver {
	padding-bottom: 7px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 0 100% / 57px 1px no-repeat;
	cursor: pointer;
}

.pv-vuelo__galeria {
	padding-bottom: 7px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 18px 100% / 57px 1px no-repeat;
}

.pv-vergaleria:hover,
.pv-vergaleria:focus-visible {
	color: var(--pv-gold);
	background-position: 0 100%;
	background-size: 100% 1px;
}

.pv-modalidad__gallery .pv-modalidad__ver:hover,
.pv-modalidad__gallery .pv-modalidad__ver:focus-visible,
.pv-vuelo__galeria:hover,
.pv-vuelo__galeria:focus-visible {
	background-size: 100% 1px;
	color: var(--pv-gold-soft);
}

/* Las fotos restantes de cada set viven en el DOM (las necesita el lightbox
   nativo de Elementor) sin ocupar lugar. */
.pv-lightbox-pool { display: none !important; }
.pv-lightbox-set,
.pv-vuelo__galeria-set { display: none; }

/* --- 9.17 Metricas de comp propias de una ficha --------------------------
   No son componentes: son medidas que el comp de UNA ficha pide distinto. Van
   colgadas de una clase modificadora de la propia pagina (no de su ID), para
   que sobrevivan a la duplicacion de Polylang en EN/PT. */

.pv-vuelos-head { padding-bottom: 78px; }
.pv-vuelos-fondo .pv-info { padding-top: 93px; }
.pv-vuelos-fondo .pv-form-section { padding: 154px 0 175px; }

/* Vuelos: H1 de dos lineas y H2 de "Que vas a ver" de dos lineas. */
.pv-hero--vuelos .pv-hero__title h1.elementor-heading-title { line-height: 78px; }
.pv-hero--vuelos .pv-hero__lead p { max-width: 500px; }
.pv-vivir--vuelos .pv-title-center h2.elementor-heading-title { line-height: 56px; }

/* Trekking: la bajada de seccion corta a 560px (el ancho por defecto del child,
   640, es para la bajada larga del piloto). */
.pv-vivir--trek .pv-section-lead p { max-width: 560px; }

/* Aventura 4x4: el rotulo "Opcional en la experiencia" se apoya sobre la foto a
   sangre y la primera tarjeta de la grilla arranca a la altura de su segunda
   linea. En el comp el rotulo se lee ENTERO porque esta dibujado POR ENCIMA de
   la tarjeta; en el DOM la grilla viene despues del rotulo, asi que sin un
   orden de pintado explicito la tarjeta lo tapaba y cortaba la segunda linea
   4px por arriba de su linea de base. Se restituye el orden del comp sin mover
   una sola medida. */
.pv-4x4-label {
	position: relative;
	z-index: 2;
}

/* --- 9.11 Adaptacion responsive de la ficha ----------------------------- */

@media (max-width: 1520px) {
	.pv-vivir .pv-slider,
	.pv-modalidades-cards .pv-modalidades__grid,
	.pv-info .pv-info__grid {
		max-width: calc(100% - 60px);
	}

	.pv-slider .pv-slider__media {
		width: 70.6%;
	}

	.pv-slider .pv-slider__card {
		width: 32%;
		min-width: 330px;
	}
}

@media (max-width: 1200px) {
	.pv-modalidades-cards .pv-modalidades__grid {
		gap: 40px;
	}

	.pv-modalidades__grid .pv-card-modalidad {
		width: calc(50% - 20px);
	}

	.pv-card-modalidad .pv-card-modalidad__body {
		padding: 22px 32px 32px;
	}
}

@media (max-width: 1024px) {
	.pv-hero {
		min-height: 720px;
		padding-top: 230px;
	}

	.pv-hero .pv-hero__title h1.elementor-heading-title {
		font-size: 52px;
		line-height: 56px;
	}

	.pv-hero .pv-hero__rule {
		margin-top: 120px;
	}

	.pv-hero .pv-hero__cta {
		margin-top: 36px;
	}

	.pv-vivir .pv-slider {
		margin-top: 60px;
	}

	.pv-slider .pv-slider__media {
		width: 100%;
	}

	.pv-slider .pv-slider__card {
		position: relative;
		top: auto;
		width: 100%;
		min-width: 0;
		max-width: 460px;
		height: auto;
		min-height: 260px;
		margin: -60px auto 0;
		transform: none;
	}

	.pv-slider .pv-slider__card > .pv-slide-panel {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		padding: 32px 32px 0;
	}

	.pv-slider .pv-slider__card > .pv-slide-panel:not(.is-active) {
		display: none;
	}

	.pv-slider .pv-slider__controls {
		position: relative;
		right: auto;
		bottom: auto;
		left: auto;
		padding: 24px 32px 30px;
	}

	.pv-modalidades-cards {
		min-height: 0;
		padding: 90px 0;
	}

	.pv-fondo .pv-info,
	.pv-fondo .pv-faq {
		padding-top: 70px;
	}

	.pv-fondo .pv-form-section {
		padding: 80px 30px 100px;
	}

	.pv-form-section .pv-form-card {
		padding: 40px 40px 44px;
	}

	.pv-info .pv-info__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.pv-hero {
		min-height: 620px;
		padding: 180px 20px 40px;
	}

	.pv-hero .pv-hero__title h1.elementor-heading-title {
		font-size: 38px;
		line-height: 42px;
	}

	.pv-hero .pv-hero__rule {
		margin-top: 80px;
	}

	.pv-hero .pv-hero__cta .elementor-button {
		font-size: 20px;
	}

	.pv-vivir {
		padding: 56px 20px 60px;
	}

	.pv-modalidades-head {
		padding: 40px 20px;
	}

	.pv-modalidades-cards {
		padding: 60px 20px;
	}

	.pv-modalidades-cards .pv-modalidades__grid {
		flex-direction: column;
		align-items: center;
		max-width: 100%;
		gap: 32px;
	}

	.pv-modalidades__grid .pv-card-modalidad {
		width: 100%;
		max-width: 460px;
	}

	.pv-card-modalidad .pv-card-modalidad__body {
		min-height: 0;
		padding: 24px 28px 32px;
	}

	.pv-card-modalidad .pv-card-modalidad__title h3.elementor-heading-title {
		font-size: 28px;
		line-height: 32px;
	}

	.pv-fondo .pv-info,
	.pv-fondo .pv-faq {
		padding: 56px 20px 0;
	}

	.pv-info .pv-info__grid {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 32px;
		max-width: 100%;
	}

	.pv-info__grid .pv-info-card {
		min-height: 0;
		padding: 20px 24px 24px;
	}

	.pv-faq .pv-accordion {
		margin-top: 32px;
	}

	.pv-accordion .pv-acc__q {
		padding: 12px 34px 12px 0;
	}

	.pv-accordion .pv-acc__q div.elementor-heading-title {
		font-size: 17px;
		line-height: 24px;
		text-align: left;
	}

	.pv-accordion .pv-acc__a p {
		padding-bottom: 24px;
		text-align: left;
	}

	.pv-fondo .pv-form-section {
		padding: 56px 20px 70px;
	}

	.pv-form-section .pv-form-card {
		min-height: 0;
		padding: 30px 24px 34px;
	}

	.pv-form-card .pv-form-card__title h2.elementor-heading-title::after {
		margin-top: 22px;
	}

	.pv-form .pv-form__row--half {
		flex: 1 1 100%;
	}

	.pv-banner {
		padding: 48px 20px 32px;
	}

	.pv-banner .pv-banner__top {
		margin-top: 40px;
	}

	.pv-vivir .pv-slider {
		margin-top: 40px;
	}
}


/* --- 9.18 Adaptacion responsive de las secciones 9.12-9.17 ---------------- */

@media (max-width: 1520px) {
	.pv-modalidad .pv-modalidad__inner,
	.pv-conect .pv-conect__inner { max-width: calc(100% - 60px); }

	.pv-trek__inner.e-con.e-flex,
	.pv-mas-dias__inner.e-con.e-flex { max-width: calc(100% - 60px); }

	.pv-trek-card.e-con.e-flex { width: 52%; min-width: 520px; }
	.pv-trek--right .pv-trek-card.e-con.e-flex { margin-left: auto; }
	.pv-trek--right .pv-trek__inner.e-con.e-flex { --justify-content: flex-end; justify-content: flex-end; }

	.pv-vuelo { padding-right: 4vw; }
	.pv-vuelo.pv-vuelo--left { padding-left: 4vw; }
}

@media (max-width: 1200px) {
	.pv-modalidad .pv-modalidad__card { padding: 36px 44px 44px; }
	.pv-anchors .pv-anchors__item { padding: 0 24px; }
	.pv-anchors .pv-anchors__item a { font-size: 20px; }

	.pv-vuelos-anchors .pv-anchors a { font-size: 20px; padding: 4px 16px; }
	.pv-vuelo .pv-vuelo__card { width: 560px; padding: 34px 40px 38px 40px; }
	.pv-vuelo .pv-vuelo__title h3.elementor-heading-title { font-size: 38px; line-height: 40px; }
	.pv-conect .pv-conect__text { padding-top: 0; flex: 0 1 490px; }
	.pv-conect .pv-conect__media img { width: 46vw; }
}

@media (max-width: 1024px) {
	.pv-modalidad,
	#pv-full-day-clasica,
	#pv-full-day-premium { min-height: 0; padding: 90px 0; }

	.pv-modalidad .pv-modalidad__inner { justify-content: center; }
	.pv-modalidad .pv-modalidad__card { min-height: 0; padding: 34px 40px 40px; }

	.pv-modalidad__card .pv-modalidad__title h3.elementor-heading-title {
		font-size: 36px;
		line-height: 40px;
	}

	.pv-anchors .pv-anchors__item { height: 44px; padding: 0 14px; }
	.pv-anchors .pv-anchors__item a { font-size: 17px; line-height: 24px; }

	.pv-trek.e-con.e-flex{--padding-block-start:80px;--padding-block-end:80px;min-height:0;padding:80px 0}
	.pv-trek__inner.e-con.e-flex{--justify-content:center;--padding-inline-start:30px;--padding-inline-end:30px;justify-content:center;padding:0 30px}
	.pv-trek--right .pv-trek__inner.e-con.e-flex{--justify-content:center;justify-content:center}
	.pv-trek--right .pv-trek-card.e-con.e-flex{margin-left:0}
	.pv-trek-card.e-con.e-flex{--padding-block-start:32px;--padding-block-end:36px;--padding-inline-start:32px;--padding-inline-end:32px;width:100%;min-width:0;max-width:631px;height:auto;min-height:0;padding:32px}
	.pv-trek-card .pv-trek-card__title h3.elementor-heading-title{font-size:36px;line-height:40px}
	.pv-trek-card .pv-trek-card__text{flex:0 0 auto;margin-top:26px;padding-bottom:30px}
	.pv-trek-card .pv-trek-card__specs,.pv-trek-card .pv-trek-card__actions.e-con.e-flex{width:100%}
	.pv-mas-dias.e-con.e-flex{--padding-block-start:70px;--padding-block-end:80px;min-height:0;padding:70px 0 80px}
	.pv-mas-dias__inner.e-con.e-flex{--padding-inline-start:30px;--padding-inline-end:30px;padding:0 30px}
	.pv-mas-dias .pv-mas-dias__title h2.elementor-heading-title{font-size:38px;line-height:42px}
	.pv-mas-dias .pv-mas-dias__text p{font-size:20px;line-height:28px}
	.pv-modalidades-head .pv-anchor-nav{margin-top:34px}
	.pv-anchor-nav__row li+li::before{display:none}
	.pv-anchor-nav__row{row-gap:10px;column-gap:34px}
	.pv-anchor-nav a{font-size:20px}

	/* el child baja el H1 a 52px aca; el line-height propio de Vuelos tiene la
	   misma especificidad y carga despues, asi que hay que bajarlo tambien. */
	.pv-hero--vuelos .pv-hero__title h1.elementor-heading-title { line-height: 58px; }

	.pv-vuelos-head { padding-bottom: 56px; }
	.pv-vuelos-anchors { margin-top: 32px; }
	.pv-vuelo,
	.pv-vuelo.pv-vuelo--left { min-height: 0; justify-content: center; padding: 80px 30px; }
	.pv-vuelo .pv-vuelo__card { width: 100%; max-width: 560px; }
	.pv-vuelos-fondo .pv-form-section { padding: 90px 30px 110px; }
	.pv-conect { min-height: 0; padding: 70px 30px 80px; }
	.pv-conect .pv-conect__inner {
		flex-direction: column;
		align-items: center;
		gap: 48px;
		max-width: 100%;
		padding: 0;
	}
	.pv-conect .pv-conect__text { flex: 0 1 auto; width: 100%; max-width: 560px; }
	.pv-conect .pv-conect__media img { width: 100%; max-width: 520px; }
}

@media (max-width: 767px) {
	.pv-modalidad,
	#pv-full-day-clasica,
	#pv-full-day-premium { padding: 60px 20px; }

	.pv-modalidad .pv-modalidad__card { max-width: 460px; padding: 26px 24px 30px; }

	.pv-modalidad__card .pv-modalidad__title h3.elementor-heading-title {
		font-size: 28px;
		line-height: 32px;
	}

	.pv-modalidad__card .pv-modalidad__specs p { display: block; }
	.pv-modalidad__card .pv-modalidad__specs strong { display: block; flex: none; }

	.pv-modalidad__card .pv-modalidad__actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}

	.pv-modalidades-head .pv-anchors { margin-top: 26px; }
	.pv-anchors .pv-anchors__list { flex-direction: column; align-items: center; }
	.pv-anchors .pv-anchors__item { height: auto; padding: 7px 0; }
	.pv-anchors .pv-anchors__item + .pv-anchors__item { border-left: 0; }
	.pv-anchors .pv-anchors__item a { font-size: 19px; }

	.pv-trek.e-con.e-flex{--padding-block-start:56px;--padding-block-end:56px;padding:56px 0}
	.pv-trek__inner.e-con.e-flex{--padding-inline-start:20px;--padding-inline-end:20px;padding:0 20px}
	.pv-trek-card.e-con.e-flex{--padding-block-start:26px;--padding-block-end:30px;--padding-inline-start:24px;--padding-inline-end:24px;padding:26px 24px 30px}
	.pv-trek-card .pv-trek-card__title h3.elementor-heading-title{font-size:28px;line-height:32px}
	.pv-trek-card .pv-trek-card__text{margin-top:24px;padding-bottom:24px}
	.pv-trek-card .pv-trek-card__specs p{flex-wrap:wrap;align-items:flex-start;padding:9px 0;min-height:0}
	.pv-trek-card .pv-trek-card__specs p strong{flex:0 0 100%}
	.pv-trek-card .pv-trek-card__actions.e-con.e-flex{--row-gap:18px;flex-wrap:wrap;row-gap:18px;margin-top:22px}
	.pv-trek-card .pv-trek-card__gallery{margin-left:0}
	.pv-mas-dias.e-con.e-flex{--padding-block-start:48px;--padding-block-end:56px;padding:48px 0 56px}
	.pv-mas-dias__inner.e-con.e-flex{--padding-inline-start:20px;--padding-inline-end:20px;padding:0 20px}
	.pv-mas-dias .pv-mas-dias__title h2.elementor-heading-title{font-size:30px;line-height:34px}
	.pv-mas-dias .pv-mas-dias__text p{font-size:17px;line-height:24px}
	.pv-anchor-nav__row{row-gap:6px;column-gap:20px}
	.pv-anchor-nav a{font-size:18px;line-height:24px}
	.pv-info .pv-info__lead p { max-width: 100%; }

	.pv-hero--vuelos .pv-hero__title h1.elementor-heading-title { line-height: 42px; }
	.pv-vivir--vuelos .pv-title-center h2.elementor-heading-title { line-height: 1.16; }

	.pv-vuelos-anchors .pv-anchors { flex-direction: column; align-items: stretch; text-align: center; }
	.pv-vuelos-anchors .pv-anchors a {
		padding: 8px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(0, 0, 24, 0.20);
	}
	.pv-vuelos-anchors .pv-anchors a:last-child { border-bottom: 0; }
	.pv-vuelo,
	.pv-vuelo.pv-vuelo--left { padding: 56px 20px; }
	.pv-vuelo .pv-vuelo__card { padding: 26px 24px 30px; }
	.pv-vuelo .pv-vuelo__title h3.elementor-heading-title { font-size: 30px; line-height: 34px; }
	.pv-vuelo .pv-vuelo__specs p { grid-template-columns: 1fr; }
	.pv-vuelo .pv-vuelo__actions { flex-direction: column; align-items: flex-start; gap: 20px; }
	.pv-vuelos-fondo .pv-form-section { padding: 56px 20px 70px; }
	.pv-conect { padding: 56px 20px 64px; }
	.pv-conect .pv-conect__title h2.elementor-heading-title { font-size: 34px; line-height: 38px; }
}

/* -------------------------------------------------------------------------
   10. Footer superpuesto a la seccion anterior
   El footer tiene el borde superior redondeado (85px). Apoyado sobre el flujo
   normal, esas curvas dejaban ver el blanco del body. Aca el footer MONTA sobre
   la ultima seccion de la pagina, de modo que las esquinas revelan el fondo de
   esa seccion (una foto, en la ficha de excursion).

   Mecanica, en tres piezas independientes del contenido de la pagina:
   (a) la ultima seccion crece `--pv-footer-overlap` por abajo (pseudo-elemento
       espaciador: extiende la caja y su fondo, sin mover el contenido) y
       compensa con un margen negativo del mismo valor -> el alto total del
       documento no cambia y nada del contenido queda tapado;
   (b) el footer, que viene despues en el arbol y esta posicionado, pinta encima
       de esa franja;
   (c) `#colophon::before` deja un fondo navy detras de la franja como FALLBACK,
       para las paginas sin seccion previa (o con seccion sin fondo): ahi la
       curva revela navy, nunca blanco. Va en z-index -1 y #colophon no crea
       contexto de apilamiento, para que el navy quede POR DEBAJO de la seccion.

   El selector usa `#page > .elementor` a proposito: los templates de header y
   footer tambien son `.elementor`, y sin el hijo directo el footer se aplicaria
   la regla a si mismo.
   ------------------------------------------------------------------------- */

:root {
	/* mismo valor que el border-radius superior del template de footer */
	--pv-footer-overlap: 85px;
}

body.ehf-footer #page > .elementor > .e-con.e-parent:last-child {
	margin-bottom: calc(-1 * var(--pv-footer-overlap));
}

body.ehf-footer #page > .elementor > .e-con.e-parent:last-child::after {
	content: "";
	display: block;
	flex: 0 0 auto;
	width: 100%;
	height: var(--pv-footer-overlap);
	pointer-events: none;
}

body.ehf-footer #colophon {
	position: relative;
}

body.ehf-footer #colophon::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: -1;
	height: var(--pv-footer-overlap);
	background: var(--pv-navy);
	pointer-events: none;
}

/* -------------------------------------------------------------------------
   11. Microinteractividad — patron reutilizable del sitio
   Criterio: sobrio y coherente. Duraciones de 150-300ms, curva de salida suave
   y solo propiedades que no participan del layout (opacity / transform / color
   / sombra / outline), para que ningun hover mueva nada. Todo queda desactivado
   bajo `prefers-reduced-motion: reduce` (bloque 11.10).
   ------------------------------------------------------------------------- */

:root {
	--pv-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--pv-t-fast: 150ms;
	--pv-t-base: 220ms;
	--pv-t-slow: 300ms;
}

/* --- 11.1 Foco visible (accesibilidad) ----------------------------------
   `outline` no participa del layout, asi que el foco nunca corre nada. */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--pv-gold);
	outline-offset: 3px;
}

.pv-banner :focus-visible,
.pv-footer :focus-visible,
.pv-header :focus-visible,
.pv-hero :focus-visible {
	outline-color: var(--pv-cream);
}

/* Marca invisible donde aterriza el enlace "Ir al contenido principal": no ocupa
   lugar ni se dibuja, solo da destino al salto de teclado. */

.pv-skip-target {
	display: block;
	height: 0;
	overflow: hidden;
	outline: none;
}

/* --- 11.2 Botones -------------------------------------------------------- */

.pv-btn-consultar .elementor-button {
	transition:
		background-color var(--pv-t-base) var(--pv-ease),
		box-shadow var(--pv-t-base) var(--pv-ease),
		transform var(--pv-t-base) var(--pv-ease);
}

.pv-btn-consultar .elementor-button:hover,
.pv-btn-consultar .elementor-button:focus-visible {
	box-shadow: 0 6px 16px rgba(0, 0, 24, 0.18);
	transform: translateY(-1px);
}

.pv-btn-consultar .elementor-button:active {
	transform: translateY(0);
}

.pv-btn-consultar .elementor-button-content-wrapper::before {
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-btn-consultar .elementor-button:hover .elementor-button-content-wrapper::before {
	transform: scale(1.09);
}

/* Utilidad reutilizable para links con flecha: el desplazamiento micro es del
   pseudo-elemento, no del texto, asi que no corre nada. Se aplica la clase
   `pv-arrow-link` al enlace y NO se escribe el caracter en el texto. */

.pv-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-arrow-link::after {
	content: "\203A";
	display: inline-block;
	line-height: 1;
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-arrow-link:hover::after,
.pv-arrow-link:focus-visible::after {
	transform: translateX(4px);
}

/* Chevron del CTA del hero y del "back to top": el mismo gesto, en vertical. */

.pv-hero .pv-hero__cta .elementor-button-content-wrapper::after {
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-hero .pv-hero__cta .elementor-button:hover .elementor-button-content-wrapper::after,
.pv-hero .pv-hero__cta .elementor-button:focus-visible .elementor-button-content-wrapper::after {
	transform: translateY(3px);
}

.pv-back-to-top__circle {
	transition:
		transform var(--pv-t-base) var(--pv-ease),
		background-color var(--pv-t-base) var(--pv-ease);
}

.pv-back-to-top:hover .pv-back-to-top__circle,
.pv-back-to-top:focus-visible .pv-back-to-top__circle {
	background: var(--pv-gold);
	transform: translateY(-3px);
}

/* --- 11.3 Cards con foto (zoom sutil + elevacion) ------------------------
   El recorte lo hace el contenedor de la foto; la escala va sobre el <img>,
   nunca sobre la card, para que el borde redondeado no se deforme. */

/* El lift es el mismo para toda card de ficha, tenga foto o no: las dos de
   modalidad del piloto, las opcionales de la grilla de 4x4, las cards de
   modalidad de Navegacion, las de trekking y las de vuelo. Se lista cada card
   por su contenedor para no arrastrar los anchos que declara el 9.4 para la
   grilla de modalidades. */
.pv-modalidades__grid .pv-card-modalidad,
.pv-4x4-grid .pv-card-modalidad,
.pv-modalidad .pv-modalidad__card,
.pv-trek .pv-trek-card,
.pv-vuelo .pv-vuelo__card {
	transition:
		box-shadow var(--pv-t-slow) var(--pv-ease),
		transform var(--pv-t-slow) var(--pv-ease);
}

.pv-modalidades__grid .pv-card-modalidad:hover,
.pv-modalidades__grid .pv-card-modalidad:focus-within,
.pv-4x4-grid .pv-card-modalidad:hover,
.pv-4x4-grid .pv-card-modalidad:focus-within,
.pv-modalidad .pv-modalidad__card:hover,
.pv-modalidad .pv-modalidad__card:focus-within,
.pv-trek .pv-trek-card:hover,
.pv-trek .pv-trek-card:focus-within,
.pv-vuelo .pv-vuelo__card:hover,
.pv-vuelo .pv-vuelo__card:focus-within {
	box-shadow: 0 18px 40px rgba(0, 0, 24, 0.16);
	transform: translateY(-4px);
}

.pv-card-modalidad .pv-card-modalidad__media {
	overflow: hidden;
}

.pv-card-modalidad .pv-card-modalidad__foto img {
	transition: transform var(--pv-t-slow) var(--pv-ease);
}

.pv-card-modalidad:hover .pv-card-modalidad__foto img,
.pv-card-modalidad:focus-within .pv-card-modalidad__foto img {
	transform: scale(1.04);
}

.pv-card-modalidad .pv-card-modalidad__media::after {
	transition:
		transform var(--pv-t-base) var(--pv-ease),
		background-color var(--pv-t-base) var(--pv-ease);
}

.pv-card-modalidad:hover .pv-card-modalidad__media::after {
	background-color: rgba(255, 255, 255, 0.45);
	transform: scale(1.1);
}

/* --- 11.4 Cards sin foto (Informacion util) ------------------------------ */

.pv-info__grid .pv-info-card {
	transition:
		border-color var(--pv-t-base) var(--pv-ease),
		box-shadow var(--pv-t-base) var(--pv-ease),
		transform var(--pv-t-base) var(--pv-ease);
}

.pv-info__grid .pv-info-card:hover {
	border-color: var(--pv-gold-soft);
	box-shadow: 0 10px 26px rgba(0, 0, 24, 0.08);
	transform: translateY(-2px);
}

/* --- 11.5 Slider --------------------------------------------------------- */

.pv-slider__arrow svg {
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-slider__arrow[data-pv-prev]:hover svg,
.pv-slider__arrow[data-pv-prev]:focus-visible svg {
	transform: translateX(-3px);
}

.pv-slider__arrow[data-pv-next]:hover svg,
.pv-slider__arrow[data-pv-next]:focus-visible svg {
	transform: translateX(3px);
}

/* --- 11.6 Acordeon ------------------------------------------------------- */

.pv-accordion .pv-acc__q div.elementor-heading-title {
	transition: color var(--pv-t-base) var(--pv-ease);
}

.pv-accordion .pv-acc__q:hover div.elementor-heading-title,
.pv-accordion .pv-acc__q:focus-visible div.elementor-heading-title {
	color: var(--pv-gold);
}

/* El "+" pasa a "-" girando: la barra horizontal acompania media vuelta
   mientras la vertical gira un cuarto y se desvanece. */
.pv-accordion .pv-acc-item.is-open .pv-acc__q::before {
	transform: rotate(180deg);
}

/* --- 11.7 Links y navegacion --------------------------------------------
   Subrayado transparente en reposo: al pintarse no reserva ni libera espacio,
   asi que el hover no mueve el texto del menu. */

.pv-header-menu .hfe-nav-menu a.hfe-menu-item {
	text-decoration: underline 1px transparent;
	text-underline-offset: 6px;
	transition:
		color var(--pv-t-fast) var(--pv-ease),
		text-decoration-color var(--pv-t-base) var(--pv-ease);
}

.pv-header-menu .hfe-nav-menu a.hfe-menu-item:hover,
.pv-header-menu .hfe-nav-menu a.hfe-menu-item:focus-visible {
	text-decoration-color: var(--pv-gold);
}

.pv-footer-menu .hfe-nav-menu a.hfe-menu-item,
.pv-footer-menu .hfe-nav-menu a.hfe-sub-menu-item,
.pv-footer-legal a,
.pv-footer-contact a {
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-footer-menu .hfe-nav-menu a.hfe-menu-item:hover,
.pv-footer-menu .hfe-nav-menu a.hfe-sub-menu-item:hover {
	color: var(--pv-gold);
}

.pv-footer-icon img,
.pv-header-icon img {
	transition:
		transform var(--pv-t-base) var(--pv-ease),
		opacity var(--pv-t-base) var(--pv-ease);
}

.pv-footer-icon:hover img,
.pv-header-icon:hover img {
	opacity: 0.85;
	transform: translateY(-2px);
}

/* --- 11.8 Formulario ----------------------------------------------------- */

.pv-form input[type="text"],
.pv-form input[type="email"],
.pv-form input[type="tel"],
.pv-form textarea {
	transition: border-color var(--pv-t-base) var(--pv-ease);
}

/* El subrayado del submit crece de 57px al ancho completo: se anima el
   background-size, que tampoco participa del layout. */
.pv-form input[type="submit"] {
	transition:
		background-size var(--pv-t-slow) var(--pv-ease),
		color var(--pv-t-base) var(--pv-ease);
}

/* --- 11.9 Entrada de secciones al scrollear ------------------------------
   La clase la pone el JS (js/pv-components.js) SOLO en las secciones que
   arrancan fuera de la vista, y se revela una sola vez: sin JS, o con motion
   reducido, no se oculta nada y no hay parpadeo. */

.pv-reveal {
	opacity: 0;
	transform: translateY(16px);
}

.pv-reveal.is-in {
	opacity: 1;
	transform: none;
	transition:
		opacity 500ms var(--pv-ease),
		transform 500ms var(--pv-ease);
}

/* --- 11.10 Respeto por prefers-reduced-motion ---------------------------- */

@media (prefers-reduced-motion: reduce) {
	.pv-reveal,
	.pv-reveal.is-in {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	*,
	*::before,
	*::after {
		animation-delay: -1ms !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-delay: 0s !important;
		transition-duration: 1ms !important;
		scroll-behavior: auto !important;
	}
}


/* =========================================================================
   12. Paginas de contenido (Nosotros, Hospedaje, Contacto, Legales)

   Promocion del CSS que hasta la consolidacion anterior vivia en un widget
   HTML de cada pagina. Cero clases renombradas: los selectores son los mismos
   que ya servia el sitio, y el bloque va al final del archivo — que es la
   misma posicion en la cascada que ocupaba el <style> del cuerpo, porque el
   handle del child (`hello-elementor-child-style`) se encola DESPUES de todas
   las hojas `elementor-post-N`.

   Convencion heredada del bloque 9: los contenedores propios parten de cero
   (Elementor fija layout y padding de contenedor desde custom properties con
   selector (0,2,0), asi que hay que calificar con `.e-con.e-flex` y declarar
   la VARIABLE ademas de la propiedad).
   ========================================================================= */

/* --- 12.0 Reset de contenedores propios de estas paginas -----------------
   Un unico bloque para los tres juegos de contenedores: las cuatro paginas
   traian la misma declaracion repetida. Los contenedores de los COMPONENTES
   compartidos (bento y actividades) tienen su propio reset en el 12.1, para
   que ese bloque sea autosuficiente al reusarlo en otra pagina.

   `.pv-form-card` NO se lista a proposito: el 9.8 ya le da su padding y una
   regla de igual especificidad y mas tardia se lo comeria. */

.pv-nos-banda,
.pv-nos-banda__inner,
.pv-nos-col-a,
.pv-nos-col-b,
.pv-nos-collage,
.pv-nos-lista,
.pv-nos-item,
.pv-nos-territorio,
.pv-contacto,
.pv-contacto__linea,
.pv-contacto__div,
.pv-legal-head,
.pv-legal-body,
.pv-legal__inner,
.pv-legal__sec {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	gap: 0;
	padding: 0;
}

/* -------------------------------------------------------------------------
   12.1 COMPONENTES COMPARTIDOS: grilla bento y filas de actividades
   Nacieron en Hospedaje pero no llevan nada de esa pagina en el selector: la
   Galeria (y cualquier pagina futura) los reusa marcando la misma estructura
   de contenedores. Lo unico page-scoped que los rodea vive en 12.3.
   ------------------------------------------------------------------------- */

/* Reset propio del componente (ver 12.0): va aca para que el bloque sea
   autosuficiente si se lo mueve o se lo reusa en otra pagina. */
.pv-bento, .pv-bento__tile,
.pv-act, .pv-act__inner, .pv-act__head, .pv-act__rows, .pv-act__row,
.pv-act__text, .pv-act__media, .pv-act__cta {
 --gap:0px;--row-gap:0px;--column-gap:0px;
 --padding-block-start:0px;--padding-block-end:0px;
 --padding-inline-start:0px;--padding-inline-end:0px;
 gap:0;padding:0}

/* --- 12.1a Grilla bento con epigrafe sobre la foto -----------------------
   Cinco fotos: una cuadrada que ocupa dos filas y cuatro apaisadas. El alto de
   fila lo define el aspecto de las apaisadas (620x295), asi la grilla escala
   sola y la foto alta ocupa siempre dos filas mas el gap. */
.pv-bento.e-con.e-flex{--display:grid;--gap:26px;--row-gap:26px;--column-gap:26px;
 display:grid;grid-template-columns:repeat(2,1fr);gap:26px;
 width:100%;max-width:1267px;margin:61px auto 0}
.pv-bento .pv-bento__tile.e-con.e-flex{position:relative;overflow:hidden;
 border-radius:var(--pv-radius-card);aspect-ratio:620/295;min-height:0}
.pv-bento .pv-bento__tile--tall.e-con.e-flex{grid-row:span 2;aspect-ratio:auto}
.pv-bento__tile .pv-bento__foto{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;margin:0}
.pv-bento__tile .pv-bento__foto img{display:block;width:100%;height:100%;object-fit:cover;
 transition:transform var(--pv-t-slow) var(--pv-ease)}
.pv-bento__tile .pv-bento__caption{position:absolute;top:0;left:0;z-index:2;
 padding:40px 42px 0;pointer-events:none}
.pv-bento__tile .pv-bento__caption h3.elementor-heading-title{color:var(--pv-white);
 font-family:var(--pv-font-heading);font-size:36px;font-weight:400;line-height:40px}
.pv-bento__tile .pv-bento__hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;margin:0}
.pv-bento__tile .pv-bento__hit a{display:block;width:100%;height:100%}
.pv-bento__tile:hover .pv-bento__foto img,
.pv-bento__tile:focus-within .pv-bento__foto img{transform:scale(1.04)}

/* --- 12.1b Filas de actividades (texto / foto alternados) -----------------
   Tres filas alternadas de texto y foto; el parrafo absorbe el sobrante para
   que la fila "Duracion" quede en el mismo offset en las tres, como en el
   comp. El fondo celeste grisaceo es del componente. */
.pv-act.e-con.e-flex{--padding-block-start:113px;--padding-block-end:187px;
 padding:113px 0 187px;background-color:#E7EEF2}
.pv-act .pv-act__inner.e-con.e-flex{width:100%;max-width:1346px;margin:0 auto}
.pv-act .pv-act__head.e-con.e-flex{--padding-inline-start:59px;padding-left:59px}
.pv-act .pv-act__title h2.elementor-heading-title{max-width:500px;color:var(--pv-gold);
 font-family:var(--pv-font-heading);font-size:48px;font-weight:400;line-height:50px;text-align:left}
.pv-act .pv-act__intro{margin-top:27px}
.pv-act .pv-act__intro p{margin:0;max-width:520px;color:var(--pv-gray);
 font-family:var(--pv-font-body);font-size:16px;font-weight:400;line-height:22px}
.pv-act .pv-act__rows.e-con.e-flex{--flex-direction:column;--gap:90px;--row-gap:90px;
 display:flex;flex-direction:column;gap:90px;margin-top:59px}
.pv-act .pv-act__row.e-con.e-flex{--display:grid;--gap:37px;--row-gap:37px;--column-gap:37px;
 display:grid;grid-template-columns:1fr 1fr;gap:37px;align-items:start}
.pv-act .pv-act__row--media-left .pv-act__media{order:-1}
.pv-act .pv-act__text.e-con.e-flex{--flex-direction:column;
 --padding-block-start:89px;--padding-inline-start:59px;--padding-inline-end:116px;
 display:flex;flex-direction:column;padding:89px 116px 0 59px;min-height:403px}
.pv-act .pv-act__h h3.elementor-heading-title{color:var(--pv-navy);
 font-family:var(--pv-font-heading);font-size:36px;font-weight:400;line-height:43px}
.pv-act .pv-act__p{margin-top:24px;flex:1 1 auto;min-height:0}
.pv-act .pv-act__p p{margin:0;color:var(--pv-gray);font-family:var(--pv-font-body);
 font-size:16px;font-weight:400;line-height:22px}
.pv-act .pv-act__specs{flex:0 0 auto;border-bottom:1px solid rgba(128,128,128,.5)}
.pv-act .pv-act__specs p{display:flex;margin:0;padding:8px 0 9px;
 border-top:1px solid rgba(128,128,128,.5);color:var(--pv-gray);
 font-family:var(--pv-font-body);font-size:16px;font-weight:400;line-height:22px}
.pv-act .pv-act__specs strong{flex:0 0 108px;font-weight:700}
/* El DOCX pide boton Consultar en cada actividad (el comp no lo dibuja): va bajo
   la fila de duracion y el min-height del bloque lo compensa, para que la fila
   quede en el mismo offset que en el comp. */
.pv-act .pv-act__cta.e-con.e-flex{--flex-direction:row;--align-items:flex-start;
 display:flex;flex-direction:row;align-items:flex-start;flex:0 0 auto;margin-top:27px}
.pv-act .pv-act__cta .pv-btn-consultar{width:auto}
.pv-act .pv-act__media.e-con.e-flex{position:relative;overflow:hidden;
 border-radius:var(--pv-radius-card);aspect-ratio:654/436;min-height:0}
.pv-act__media .pv-act__foto{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;margin:0}
.pv-act__media .pv-act__foto img{display:block;width:100%;height:100%;object-fit:cover;
 transition:transform var(--pv-t-slow) var(--pv-ease)}
.pv-act__media .pv-act__hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;margin:0}
.pv-act__media .pv-act__hit a{display:block;width:100%;height:100%}
.pv-act__media:hover .pv-act__foto img,
.pv-act__media:focus-within .pv-act__foto img{transform:scale(1.04)}

/* --- 12.1c Responsive de los componentes compartidos ---------------------- */
@media (max-width:1400px){
 .pv-bento.e-con.e-flex{max-width:calc(100% - 60px)}
 .pv-act .pv-act__inner.e-con.e-flex{max-width:calc(100% - 60px)}
}
@media (max-width:1200px){
 .pv-act .pv-act__text.e-con.e-flex{--padding-block-start:60px;--padding-inline-start:36px;
  --padding-inline-end:48px;padding:60px 48px 0 36px;min-height:0}
 .pv-act .pv-act__h h3.elementor-heading-title{font-size:30px;line-height:36px}
 .pv-act .pv-act__title h2.elementor-heading-title{font-size:40px;line-height:44px}
 .pv-act .pv-act__head.e-con.e-flex{--padding-inline-start:36px;padding-left:36px}
}
@media (max-width:1024px){
 .pv-bento__tile .pv-bento__caption{padding:26px 28px 0}
 .pv-bento__tile .pv-bento__caption h3.elementor-heading-title{font-size:26px;line-height:30px}
 .pv-act.e-con.e-flex{--padding-block-start:80px;--padding-block-end:90px;padding:80px 0 90px}
 .pv-act .pv-act__row.e-con.e-flex{grid-template-columns:1fr;gap:24px}
 .pv-act .pv-act__row--media-left .pv-act__media{order:0}
 .pv-act .pv-act__rows.e-con.e-flex{--gap:60px;--row-gap:60px;gap:60px;margin-top:44px}
 .pv-act .pv-act__text.e-con.e-flex{--padding-block-start:0px;--padding-inline-start:0px;
  --padding-inline-end:0px;padding:0}
 .pv-act .pv-act__head.e-con.e-flex{--padding-inline-start:0px;padding-left:0}
 .pv-act .pv-act__inner.e-con.e-flex{max-width:calc(100% - 60px)}
}
@media (max-width:767px){
 .pv-bento.e-con.e-flex{--gap:18px;--row-gap:18px;--column-gap:18px;
  grid-template-columns:1fr;gap:18px;margin-top:40px;max-width:calc(100% - 40px)}
 .pv-bento .pv-bento__tile--tall.e-con.e-flex{grid-row:span 1;aspect-ratio:620/420}
 .pv-bento__tile .pv-bento__caption h3.elementor-heading-title{font-size:24px;line-height:28px}
 .pv-act.e-con.e-flex{--padding-block-start:56px;--padding-block-end:64px;
  --padding-inline-start:20px;--padding-inline-end:20px;padding:56px 20px 64px}
 .pv-act .pv-act__inner.e-con.e-flex{max-width:100%}
 .pv-act .pv-act__title h2.elementor-heading-title{font-size:30px;line-height:34px}
 .pv-act .pv-act__h h3.elementor-heading-title{font-size:26px;line-height:30px}
 .pv-act .pv-act__specs p{display:block}
 .pv-act .pv-act__specs strong{display:block;flex:none}
}

/* -------------------------------------------------------------------------
   12.2 Sobre Nosotros (pagina 16)
   Medidas del comp original (pagina de 1980px; 1pt de diseno = 1px de
   pantalla) sobre el contenedor de 1440px del sitio, centrado igual que el
   header y el footer: su borde izquierdo cae en x=270.
   ------------------------------------------------------------------------- */
/* --- 1. Hero ------------------------------------------------------------
   Variante del hero de ficha: sin linea fina ni CTA, texto alineado al
   borde izquierdo del contenedor (x=270 en el comp) en vez de centrado. */

.pv-hero--nosotros {
	min-height: 1025px;
	padding: 317.4px max(24px, calc((100% - 1440px) / 2)) 0;
	justify-content: flex-start;
}

.pv-hero--nosotros .pv-hero__title h1.elementor-heading-title {
	font-size: 68px;
	line-height: 78px;
	text-align: left;
}

.pv-hero--nosotros .pv-hero__lead {
	margin-top: 37.8px;
}

.pv-hero--nosotros .pv-hero__lead p {
	max-width: 578px;
	margin: 0 0 22px;
	color: var(--pv-cream);
	font-size: 18px;
	line-height: 22px;
	text-align: left;
}

.pv-hero--nosotros .pv-hero__lead p:last-child {
	margin-bottom: 0;
}

.pv-hero--nosotros .pv-hero__lead strong {
	font-weight: 700;
}

/* --- 2. Banda clara ------------------------------------------------------
   Una sola seccion: columna izquierda (titulo "Por que POLARAVIS" + collage)
   y columna derecha (lista 01-05 + "Nuestro territorio"). El fondo es la
   textura del comp a ancho completo, anclada arriba, con el crema solido
   detras para cuando la banda crece mas que la imagen. */

.pv-nos-banda {
	padding: 0 max(24px, calc((100% - 1440px) / 2)) 197px;
	/* La textura de esta banda se sirve a ancho completo (`background-size:
	   100% auto` por setting del contenedor) y su alto sale de la proporcion
	   del archivo: 1772/1980 del ancho. En una pantalla de 1920 eso da 1718px
	   contra los 1773px que mide la banda, y quedan ~55px al pie sin imagen
	   (mas, cuanto mas angosta la ventana). Ese sobrante lo pinta este color,
	   que es EXACTAMENTE el de la ultima fila de la textura -- plana en sus
	   ultimos 30px --, asi que la union no se nota y la banda llega entera
	   hasta la franja de contacto. Con el crema del sitio, dos tonos mas
	   claro, se leia como una franja sin fondo. */
	background-color: #E4DCD8;
}

/* Elementor declara `--flex-direction: column` con un selector de dos clases
   (.e-con.e-flex): hay que calificar y declarar tambien la variable. */
.pv-nos-banda__inner.e-con.e-flex {
	--flex-direction: row;
	--align-items: flex-start;
	--width: 100%;
	flex-direction: row;
	align-items: flex-start;
	width: 100%;
	max-width: 100%;
}

.pv-nos-col-a.e-con {
	position: relative;
	--width: 681px;
	flex: 0 0 681px;
	width: 681px;
	max-width: 681px;
	min-height: 1576px;
}

.pv-nos-col-b.e-con {
	--width: 500px;
	flex: 0 0 500px;
	width: 500px;
	max-width: 500px;
}

/* 2.1 "Por que POLARAVIS" */
.pv-nos-porque {
	margin-top: 122.6px;
}

.pv-nos-porque h2.elementor-heading-title {
	max-width: 240px;
	margin-left: 228px;
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 57.6px;
	text-align: left;
}

.pv-nos-porque h2.elementor-heading-title::after,
.pv-nos-territorio__title h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 88px;
	height: 1px;
	margin-top: 16.3px;
	background: var(--pv-gold);
}

/* 2.2 Collage de cuatro fotos escalonadas.
   Posiciones y tamanos medidos uno por uno en el comp (bbox de cada imagen
   incrustada): columna izquierda en x=354, derecha en x=604 (17px de calle),
   la derecha arranca 169px mas abajo. */
.pv-nos-collage {
	position: absolute;
	top: 718px;
	left: 84px;
	width: 483px;
	height: 858px;
}

.pv-nos-collage .elementor-widget-image {
	position: absolute;
	width: 233px;
	margin: 0;
}

.pv-nos-collage .elementor-widget-image img {
	display: block;
	width: 233px;
	height: 334px;
	border-radius: 10px;
	object-fit: cover;
}

.pv-nos-collage__foto--1 { top: 0;     left: 0; }
.pv-nos-collage__foto--2 { top: 169px; left: 250px; }
.pv-nos-collage__foto--3 { top: 353px; left: 0; }
.pv-nos-collage__foto--4 { top: 524px; left: 250px; }

/* 2.3 Lista numerada 01-05.
   Los cinco bloques del comp no estan en una grilla regular: el aire bajo
   cada uno va de 37 a 45px y el que hay entre el numero y su titulo, de 24
   a 29. Se respeta el valor medido de cada item mediante variables. */
.pv-nos-lista {
	width: 497px;
	max-width: 100%;
	margin-top: 129.9px;
}

/* La alfa NO se unifica con el 0.5 de las lineas de specs de las fichas (9.13,
   9.14, 12.1b) a proposito. En el vector las dos lineas son el MISMO gris
   (#808080 opaco): lo que cambia es el grosor del trazo — 0.25pt en los
   divisores de esta lista y 0.5pt en las filas de specs. Como el navegador no
   dibuja medio pixel, el build aproxima cada grosor bajando la alfa de una
   linea de 1px. Son dos componentes con medidas distintas por comp, no una
   inconsistencia: unificarlos alejaria a uno de los dos de su diseno. */
.pv-nos-item {
	padding-bottom: var(--pb);
	border-bottom: 1px solid rgba(128, 128, 128, 0.27);
}

.pv-nos-item:nth-child(1) { --pb: 17px;   --g1: 24.8px; --pt: 0; }
.pv-nos-item:nth-child(2) { --pb: 17.3px; --g1: 23.8px; --pt: 15.6px; }
.pv-nos-item:nth-child(3) { --pb: 20.3px; --g1: 28.6px; --pt: 13.1px; }
.pv-nos-item:nth-child(4) { --pb: 22.5px; --g1: 29.1px; --pt: 13.5px; }
.pv-nos-item:nth-child(5) { --pb: 24.4px; --g1: 27.5px; --pt: 15.8px; }

/* El comp deja el texto de la lista 1px adentro de la linea divisoria. */
.pv-nos-item__num,
.pv-nos-item__title,
.pv-nos-item__text,
.pv-nos-territorio__cta {
	padding-left: 1px;
}

.pv-nos-item__num {
	margin-top: var(--pt);
}

.pv-nos-item__num div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 18px;
	font-weight: 400;
	line-height: 18px;
	text-align: left;
}

.pv-nos-item__title {
	margin-top: calc(var(--g1) - 18px);
}

.pv-nos-item__title h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 24px;
	text-align: left;
}

.pv-nos-item__text {
	margin-top: 8.2px;
}

.pv-nos-item__text p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 19.2px;
}

/* 2.4 "Nuestro territorio" */
.pv-nos-territorio {
	margin-top: 171.4px;
}

.pv-nos-territorio__title h2.elementor-heading-title {
	width: 520px;
	max-width: 520px;
	padding-left: 3px;
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 57.6px;
	text-align: left;
}

.pv-nos-territorio__text {
	padding-left: 3px;
	margin-top: 37.5px;
}

.pv-nos-territorio__text p {
	margin: 0 0 19.2px;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 19.2px;
}

.pv-nos-territorio__text p:last-child {
	margin-bottom: 0;
}

.pv-nos-territorio__text strong {
	font-weight: 700;
}

.pv-nos-territorio__cta {
	margin-top: 43.5px;
}

/* Misma pastilla que el "VER GALERIA" de las fichas (9.16) pero a 16px, que
   es como la trae este comp; el subrayado corto arranca en el borde del
   texto y crece al ancho completo en hover. La flecha la pone
   `.pv-arrow-link` por ::after: no va escrita en el texto. */
.pv-nos-vergaleria {
	display: inline-flex;
	padding-bottom: 11.5px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 0 100% / 57px 1px no-repeat;
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 19px;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		background-size var(--pv-t-slow) var(--pv-ease),
		background-position var(--pv-t-slow) var(--pv-ease),
		color var(--pv-t-base) var(--pv-ease);
}

.pv-nos-vergaleria:hover,
.pv-nos-vergaleria:focus-visible {
	background-size: 100% 1px;
	color: var(--pv-gold-soft);
}

/* --- 3. Banda CTA -------------------------------------------------------
   Variante del banner de WhatsApp de las fichas: aca abre con un H2 de dos
   lineas y el telefono va a 18px. Los ultimos 85px los tapa el footer
   superpuesto (bloque 10 del child), igual que en las fichas. */

.pv-banner--nosotros {
	min-height: 613px;
	padding: 77.9px 0 0;
}

.pv-banner--nosotros .pv-banner__h2 h2.elementor-heading-title {
	color: var(--pv-cream);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 52px;
	text-align: center;
}

.pv-banner--nosotros .pv-banner__text {
	margin-top: 19.8px;
}

.pv-banner--nosotros .pv-banner__text p {
	max-width: 460px;
	font-weight: 400;
}

.pv-banner--nosotros .pv-banner__icon {
	margin-top: 20.2px;
}

.pv-banner--nosotros .pv-banner__icon img {
	width: 38px;
	height: 38px;
}

.pv-banner--nosotros .pv-banner__title {
	margin-top: 7.3px;
}

.pv-banner--nosotros .pv-banner__title h3.elementor-heading-title {
	font-size: 18px;
	line-height: 24px;
}

.pv-banner--nosotros .pv-banner__title h3.elementor-heading-title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--pv-t-base) var(--pv-ease);
}

.pv-banner--nosotros .pv-banner__title h3.elementor-heading-title a:hover,
.pv-banner--nosotros .pv-banner__title h3.elementor-heading-title a:focus-visible {
	color: var(--pv-white);
}

.pv-banner--nosotros .pv-banner__title h3.elementor-heading-title::after {
	width: 91px;
	margin-top: 15.4px;
}

.pv-banner--nosotros .pv-banner__top {
	margin-top: 67px;
}

/* --- 4. Microinteractividad propia de la pagina -------------------------- */

.pv-nos-collage .elementor-widget-image img {
	transition:
		transform var(--pv-t-slow) var(--pv-ease),
		box-shadow var(--pv-t-base) var(--pv-ease);
}

.pv-nos-collage .elementor-widget-image:hover img {
	box-shadow: 0 10px 26px rgba(0, 0, 24, 0.16);
	transform: translateY(-3px);
}

.pv-nos-item {
	transition: border-color var(--pv-t-base) var(--pv-ease);
}

.pv-nos-item:hover {
	border-bottom-color: var(--pv-gold);
}

@media (prefers-reduced-motion: reduce) {
	.pv-nos-collage .elementor-widget-image:hover img {
		transform: none;
	}
}

/* --- 5. Adaptacion responsive ------------------------------------------
   El comp es solo de escritorio (1980px): de 1520px para abajo son
   derivaciones de build, no valores medidos. */

@media (max-width: 1520px) {
	.pv-nos-banda__inner.e-con.e-flex {
		justify-content: space-between;
	}

	/* El H2 de "Nuestro territorio" desborda 20px la columna por decision del
	   comp; abajo de 1520 vuelve al ancho de la columna. */
	.pv-nos-territorio__title h2.elementor-heading-title {
		width: 100%;
		max-width: 100%;
	}

	.pv-nos-col-a.e-con {
		flex: 0 1 600px;
		width: 600px;
	}

	.pv-nos-collage {
		left: 40px;
	}
}

@media (max-width: 1200px) {
	.pv-hero--nosotros {
		min-height: 820px;
		padding-top: 200px;
	}

	.pv-nos-banda {
		padding-bottom: 120px;
	}

	.pv-nos-col-a.e-con {
		flex: 0 1 520px;
		width: 520px;
		min-height: 1440px;
	}

	.pv-nos-col-b.e-con {
		flex: 0 1 460px;
		width: 460px;
	}

	.pv-nos-lista {
		width: 100%;
	}

	.pv-nos-collage {
		top: 620px;
		left: 0;
		width: 440px;
		height: 782px;
	}

	.pv-nos-collage .elementor-widget-image,
	.pv-nos-collage .elementor-widget-image img {
		width: 212px;
	}

	.pv-nos-collage .elementor-widget-image img {
		height: 304px;
	}

	.pv-nos-collage__foto--2 { top: 154px; left: 228px; }
	.pv-nos-collage__foto--3 { top: 321px; left: 0; }
	.pv-nos-collage__foto--4 { top: 477px; left: 228px; }

	.pv-nos-porque {
		margin-top: 80px;
	}

	.pv-nos-porque h2.elementor-heading-title {
		margin-left: 0;
	}

	.pv-nos-lista {
		margin-top: 85px;
	}
}

@media (max-width: 1024px) {
	.pv-hero--nosotros {
		min-height: 700px;
		padding-top: 170px;
	}

	.pv-hero--nosotros .pv-hero__title h1.elementor-heading-title {
		font-size: 52px;
		line-height: 60px;
	}

	.pv-hero--nosotros .pv-hero__lead p {
		font-size: 16px;
	}

	/* Las dos columnas se deshacen (`display: contents`) para que los cuatro
	   bloques queden en un solo hilo y conserven el orden de lectura del comp:
	   titulo -> lista -> territorio -> fotos. Apilar las COLUMNAS dejaria la
	   lista 01-05 antes del titulo al que pertenece. */
	.pv-nos-banda__inner.e-con.e-flex {
		--flex-direction: column;
		flex-direction: column;
		gap: 0;
	}

	.pv-nos-col-a.e-con,
	.pv-nos-col-b.e-con {
		display: contents;
	}

	.pv-nos-porque { order: 1; }
	.pv-nos-lista { order: 2; }
	.pv-nos-territorio { order: 3; }
	.pv-nos-collage { order: 4; }

	.pv-nos-banda {
		padding-top: 72px;
		padding-bottom: 80px;
	}

	.pv-nos-porque {
		margin-top: 0;
	}

	.pv-nos-lista {
		width: 100%;
		margin-top: 44px;
	}

	.pv-nos-collage {
		position: static;
		display: grid;
		width: 100%;
		height: auto;
		margin-top: 64px;
		gap: 20px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pv-nos-collage .elementor-widget-image {
		position: static;
		width: 100%;
	}

	.pv-nos-collage .elementor-widget-image img {
		width: 100%;
		height: auto;
		aspect-ratio: 233 / 334;
	}

	.pv-nos-territorio {
		margin-top: 72px;
	}

	.pv-banner--nosotros {
		min-height: 0;
		padding: 72px 24px 0;
	}
}

@media (max-width: 767px) {
	.pv-hero--nosotros {
		min-height: 560px;
		padding-top: 140px;
	}

	.pv-hero--nosotros .pv-hero__title h1.elementor-heading-title {
		font-size: 38px;
		line-height: 44px;
	}

	.pv-nos-porque h2.elementor-heading-title {
		max-width: 100%;
		font-size: 30px;
		line-height: 36px;
	}

	.pv-nos-porque h2.elementor-heading-title::after,
	.pv-nos-territorio__title h2.elementor-heading-title::after {
		margin-top: 28px;
	}

	.pv-nos-territorio__title h2.elementor-heading-title {
		font-size: 30px;
		line-height: 36px;
	}

	.pv-nos-collage {
		grid-template-columns: minmax(0, 1fr);
	}

	.pv-banner--nosotros .pv-banner__h2 h2.elementor-heading-title {
		font-size: 30px;
		line-height: 36px;
	}
}

/* -------------------------------------------------------------------------
   12.3 Hospedaje (pagina 22) — lo propio de la pagina
   Los componentes bento y actividades que usa estan en 12.1.
   ------------------------------------------------------------------------- */
/* --- Hero ---------------------------------------------------------------
   El comp arranca el bloque de titulo 54.5px mas abajo que en las fichas: el
   H1 es de una sola linea y la bajada de tres, y el conjunto queda centrado
   sobre el mismo eje (y=492) que en los comps de ficha. La linea fina y el CTA
   siguen anclados al pie por el patron del child (margin-top:auto). */
.pv-hero--hospedaje{padding-top:409.5px}
.pv-hero--hospedaje .pv-hero__lead{margin-top:36px}
.pv-hero--hospedaje .pv-hero__lead p{max-width:530px}
.pv-hero--hospedaje .pv-hero__lead strong{font-weight:600}

/* --- "Que vas a vivir": grilla bento con epigrafe sobre la foto ----------
   Cinco fotos: una cuadrada que ocupa dos filas y cuatro apaisadas. El alto de
   fila lo define el aspecto de las apaisadas (620x295), asi la grilla escala
   sola y la foto alta ocupa siempre dos filas mas el gap. */
.pv-vivir--hospedaje{padding-bottom:71px}
.pv-vivir--hospedaje .pv-section-lead{margin-top:24px}
.pv-vivir--hospedaje .pv-section-lead p{max-width:420px}
/* --- Cabecera "Hospedajes disponibles" + anclas a las dos unidades -------- */
.pv-hosp-head{padding-bottom:41px;scroll-margin-top:110px}
.pv-hosp-head .pv-anchors{margin-top:23px}

/* --- Domos / Cabanas: foto a sangre + card crema flotante -----------------
   Card mas chica que la de Navegacion (501x445 contra 686x615) y anclada a la
   izquierda del tier de contenido de esta pagina (1267px). La bajada absorbe
   el alto sobrante para que las specs arranquen SIEMPRE en el mismo offset,
   como en el comp (244.6px desde el borde de la card en las dos unidades). */
.pv-modalidad--hospedaje{--padding-block-start:270px;--padding-block-end:364px;
 --justify-content:flex-start;min-height:0;padding:270px 0 364px;
 justify-content:flex-start;scroll-margin-top:110px}
.pv-modalidad--hospedaje .pv-modalidad__inner{max-width:1267px}
.pv-modalidad--hospedaje .pv-modalidad__card.e-con.e-flex{--flex-direction:column;
 --padding-block-start:42px;--padding-block-end:47px;
 --padding-inline-start:52px;--padding-inline-end:47px;
 display:flex;flex-direction:column;width:501px;min-height:445px;padding:42px 47px 47px 52px}
.pv-modalidad--hospedaje .pv-modalidad__text{margin-top:30px;flex:1 1 auto;min-height:0}
.pv-modalidad--hospedaje .pv-modalidad__specs{margin-top:0;flex:0 0 auto}
.pv-modalidad--hospedaje .pv-modalidad__actions{margin-top:38px;flex:0 0 auto}
.pv-modalidad--hospedaje .pv-modalidad__gallery .pv-modalidad__ver{background-position:17px 100%}
/* --- Fondo oscuro: Informacion util + FAQ + formulario --------------------
   A diferencia de las fichas (fondo crema), esta pagina apoya las tres
   secciones sobre el cielo estrellado. Cambian los colores de texto, las cards
   pasan a crema solido y el color de fondo del contenedor es el azul de noche
   del propio asset, que ademas trae horneado el degrade final. */
.pv-fondo--hospedaje{background-color:#0D0F1B}
.pv-fondo--hospedaje .pv-info{padding-top:93px}
.pv-fondo--hospedaje .pv-info .pv-info__grid{margin-top:53px}
.pv-fondo--hospedaje .pv-title-gold h2.elementor-heading-title{color:var(--pv-cream)}
.pv-fondo--hospedaje .pv-form-card .pv-title-gold h2.elementor-heading-title{color:var(--pv-gold)}
.pv-fondo--hospedaje .pv-info__grid .pv-info-card{background:var(--pv-cream)}
.pv-fondo--hospedaje .pv-faq{padding-top:127px}
.pv-fondo--hospedaje .pv-faq .pv-accordion{border-top-color:rgba(233,227,223,.45)}
.pv-fondo--hospedaje .pv-acc-item{border-bottom:1px solid rgba(233,227,223,.45)}
.pv-fondo--hospedaje .pv-accordion .pv-acc__q div.elementor-heading-title{color:var(--pv-cream)}
.pv-fondo--hospedaje .pv-accordion .pv-acc__q:hover div.elementor-heading-title,
.pv-fondo--hospedaje .pv-accordion .pv-acc__q:focus-visible div.elementor-heading-title{color:var(--pv-gold-line)}
.pv-fondo--hospedaje .pv-accordion .pv-acc__a p{color:var(--pv-cream);padding-bottom:58px}
.pv-fondo--hospedaje .pv-form-section{padding:123px 0 451px}

/* --- Responsive de la pagina --------------------------------------------- */
@media (max-width:1400px){
 .pv-modalidad--hospedaje .pv-modalidad__inner{max-width:calc(100% - 60px)}
}
@media (max-width:1024px){
 .pv-hero--hospedaje{padding-top:250px}
 .pv-hero--hospedaje .pv-hero__lead{margin-top:26px}
 .pv-modalidad--hospedaje{--padding-block-start:90px;--padding-block-end:90px;
  --justify-content:center;padding:90px 0;justify-content:center}
 .pv-modalidad--hospedaje .pv-modalidad__inner{justify-content:center}
 .pv-modalidad--hospedaje .pv-modalidad__card.e-con.e-flex{--padding-block-start:34px;
  --padding-block-end:40px;--padding-inline-start:36px;--padding-inline-end:36px;
  width:100%;max-width:501px;min-height:0;padding:34px 36px 40px}
 .pv-fondo--hospedaje .pv-info,
 .pv-fondo--hospedaje .pv-faq{padding-top:70px}
 .pv-fondo--hospedaje .pv-form-section{padding:80px 30px 220px}
}
@media (max-width:767px){
 .pv-hero--hospedaje{padding-top:190px}
 .pv-hosp-head{padding-bottom:24px}
 .pv-modalidad--hospedaje{--padding-block-start:60px;--padding-block-end:60px;
  --padding-inline-start:20px;--padding-inline-end:20px;padding:60px 20px}
 .pv-modalidad--hospedaje .pv-modalidad__card.e-con.e-flex{--padding-block-start:26px;
  --padding-block-end:30px;--padding-inline-start:24px;--padding-inline-end:24px;
  max-width:460px;padding:26px 24px 30px}
 .pv-fondo--hospedaje .pv-form-section{padding:56px 20px 160px}
}

/* -------------------------------------------------------------------------
   12.4 Contacto (pagina 24)
   Medidas del comp material/diseno/Demo-Contacto.pdf (pagina de 1980px).
   ------------------------------------------------------------------------- */
/* La foto es full-bleed y llega hasta el footer. 1690 = 1605 (alto de la banda
   en el comp, y del footer) + 85 del solape del footer (bloque 10 del child):
   la caja mide 1690 y ocupa 1605 en el flujo, asi que las esquinas redondeadas
   del footer revelan la foto, no el blanco del body. */
.pv-contacto {
	min-height: 1690px;
	padding: 286px 0 0;
	background-position: center top;
	background-size: cover;
}

.pv-contacto .pv-contacto__title h1.elementor-heading-title {
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 68px;
	font-weight: 400;
	line-height: 70px;
	text-align: center;
}

.pv-contacto .pv-contacto__lead {
	margin-top: 33px;
}

.pv-contacto .pv-contacto__lead p {
	max-width: 400px;
	margin: 0 auto;
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 22px;
	text-align: center;
}

/* --- Lineas de contacto (icono circular dorado + dato) ------------------- */

.pv-contacto .pv-contacto__linea--wa {
	margin-top: 46px;
}

.pv-contacto .pv-contacto__linea--mail {
	margin-top: 38px;
}

.pv-contacto .pv-contacto__icon img {
	display: block;
	margin: 0 auto;
}

/* Con link, Elementor envuelve la <img> en un <a> inline-block: sobre la linea
   base del bloque suma ~5px de descendente y corre todo lo que viene abajo. */
.pv-contacto .pv-contacto__icon a {
	display: block;
}

/* El icono de WhatsApp reutiliza el asset compartido del sitio (id 69), que
   trae ~20% de aire en el lienzo: se agranda para que el glifo rinda los
   45.7px del comp y se recupera la caja con margenes negativos. */
.pv-contacto .pv-contacto__linea--wa .pv-contacto__icon img {
	width: 56.8px;
	height: 56.8px;
	margin: -5.6px auto;
}

/* El de mail se exporto con lienzo AJUSTADO (canon), asi que va a medida. */
.pv-contacto .pv-contacto__icon--mail img {
	width: 45.1px;
	height: 45.1px;
}

.pv-contacto .pv-contacto__dato {
	margin-top: 16px;
}

.pv-contacto .pv-contacto__linea--mail .pv-contacto__dato {
	margin-top: 9px;
}

.pv-contacto .pv-contacto__dato div.elementor-heading-title,
.pv-contacto .pv-contacto__dato div.elementor-heading-title a {
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 24px;
	font-weight: 500;
	line-height: 34px;
	text-align: center;
	text-decoration: none;
}

/* "(a confirmar)" va en Light en el comp, dentro de la misma linea. */
.pv-contacto .pv-contacto__nota {
	font-weight: 300;
}

.pv-contacto .pv-contacto__div {
	--width: 91px;
	width: 91px;
	min-height: 1px;
	height: 1px;
	flex: 0 0 auto;
	margin: 35px auto 0;
	background: var(--pv-gold);
}

/* --- Card del formulario ------------------------------------------------- */

.pv-contacto .pv-form-section {
	margin-top: 93px;
}

/* En la ficha la card es blanca; en Contacto el comp la pide crema. */
.pv-contacto .pv-form-card--crema {
	background: var(--pv-cream);
}

/* --- Microinteractividad (bloque 11 del child) --------------------------- */

.pv-contacto .pv-contacto__icon img {
	transition:
		opacity var(--pv-t-base) var(--pv-ease),
		transform var(--pv-t-base) var(--pv-ease);
}

.pv-contacto .pv-contacto__dato div.elementor-heading-title a {
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-contacto .pv-contacto__linea--wa:hover .pv-contacto__icon img,
.pv-contacto .pv-contacto__linea--wa:focus-within .pv-contacto__icon img {
	opacity: 0.9;
	transform: translateY(-2px);
}

.pv-contacto .pv-contacto__linea--wa:hover .pv-contacto__dato div.elementor-heading-title a,
.pv-contacto .pv-contacto__dato div.elementor-heading-title a:focus-visible {
	color: var(--pv-white);
}

/* Sobre la foto el foco se ve mejor en crema que en dorado. */
.pv-contacto .pv-contacto__linea :focus-visible {
	outline-color: var(--pv-cream);
}

/* --- Responsive ---------------------------------------------------------- */

@media (max-width: 1520px) {
	.pv-contacto {
		min-height: 1560px;
	}
}

@media (max-width: 1024px) {
	.pv-contacto {
		min-height: 0;
		padding: 230px 0 0;
	}

	.pv-contacto .pv-contacto__lead {
		margin-top: 24px;
	}

	.pv-contacto .pv-contacto__linea--wa {
		margin-top: 40px;
	}

	.pv-contacto .pv-form-section {
		margin-top: 70px;
		padding: 0 30px 130px;
	}
}

@media (max-width: 767px) {
	.pv-contacto {
		padding: 180px 20px 0;
	}

	.pv-contacto .pv-contacto__lead p {
		font-size: 16px;
	}

	/* El corte del comp asume 400px de bloque: en mobile estorba. */
	.pv-contacto .pv-contacto__lead br {
		display: none;
	}

	.pv-contacto .pv-contacto__dato div.elementor-heading-title,
	.pv-contacto .pv-contacto__dato div.elementor-heading-title a {
		font-size: 20px;
		line-height: 28px;
	}

	.pv-contacto .pv-form-section {
		margin-top: 56px;
		padding: 0 0 110px;
	}
}

/* -------------------------------------------------------------------------
   12.5 Legales (pagina 25)

   La pagina NO tiene comp de diseno: todo sale de los tokens de marca del
   bloque 2 y de reglas que ya existen en este archivo:
     - fondo del cuerpo: crema #ECE6E2 (--pv-cream)
     - banda superior navy (--pv-navy): el header global es transparente y su
       texto es crema, asi que sobre crema seria ilegible; el navy es el mismo
       par de tokens del footer.
     - H1 68px Minerva blanco  -> el que ya da el bloque 7
     - H4 28px Minerva navy    -> idem (token del kit)
     - cuerpo Inter 16px/22px #808080 y medida de 640px -> los mismos valores
       de .pv-section-lead, el bloque de texto corrido del sitio.
   ------------------------------------------------------------------------- */
/* --- Banda de titulo ----------------------------------------------------- */

.pv-legal-head {
	padding: 250px 0 86px;
	background-color: var(--pv-navy);
}

.pv-legal-head .pv-legal__title h1.elementor-heading-title {
	text-align: center;
}

.pv-legal-head .pv-legal__meta {
	margin-top: 24px;
}

.pv-legal-head .pv-legal__meta p {
	margin: 0;
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	text-align: center;
}

/* --- Cuerpo -------------------------------------------------------------- */

.pv-legal-body {
	padding: 96px 0 150px;
	background-color: var(--pv-cream);
}

.pv-legal-body .pv-legal__inner {
	--width: 640px;
	width: 640px;
	max-width: calc(100% - 60px);
	margin: 0 auto;
}

/* Las secciones 3, 7 y 9 son destino de los enlaces del footer (#condiciones-de-uso,
   #privacidad, #defensa-del-consumidor). El header es `position: absolute`, asi que
   no tapa nada al llegar por ancla; el margen deja el mismo aire que usan las anclas
   de Hospedaje, para que el titulo no quede pegado al borde de la ventana. */
.pv-legal-body .pv-legal__sec {
	margin-top: 56px;
	scroll-margin-top: 110px;
}

.pv-legal-body .pv-legal__sec:first-child {
	margin-top: 0;
}

.pv-legal-body .pv-legal__h h4.elementor-heading-title {
	text-align: left;
}

.pv-legal-body .pv-legal__h h4.elementor-heading-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 1px;
	margin-top: 18px;
	background: var(--pv-gold);
}

.pv-legal-body .pv-legal__text {
	margin-top: 20px;
}

.pv-legal-body .pv-legal__text p,
.pv-legal-body .pv-legal__text li {
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
}

.pv-legal-body .pv-legal__text p {
	margin: 0 0 18px;
}

.pv-legal-body .pv-legal__text > *:last-child {
	margin-bottom: 0;
}

.pv-legal-body .pv-legal__text ol {
	margin: 0 0 18px;
	padding-left: 20px;
}

.pv-legal-body .pv-legal__text li {
	margin: 0 0 8px;
}

.pv-legal-body .pv-legal__text li:last-child {
	margin-bottom: 0;
}

.pv-legal-body .pv-legal__text li::marker {
	color: var(--pv-gold);
}

.pv-legal-body .pv-legal__text strong {
	color: var(--pv-navy);
	font-weight: 500;
}

.pv-legal-body .pv-legal__text a {
	color: var(--pv-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	overflow-wrap: break-word;
	word-break: break-word;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-legal-body .pv-legal__text a:hover,
.pv-legal-body .pv-legal__text a:focus-visible {
	color: var(--pv-navy);
}

/* --- Responsive ---------------------------------------------------------- */

@media (max-width: 1024px) {
	.pv-legal-head {
		padding: 200px 0 70px;
	}

	.pv-legal-body {
		padding: 76px 0 120px;
	}
}

@media (max-width: 767px) {
	.pv-legal-head {
		padding: 160px 20px 54px;
	}

	.pv-legal-body {
		padding: 56px 0 96px;
	}

	.pv-legal-body .pv-legal__inner {
		max-width: calc(100% - 40px);
	}

	.pv-legal-body .pv-legal__sec {
		margin-top: 44px;
	}
}


/* =========================================================================
   13. Home (pagina 15) y Galeria (pagina 23)

   Ultimo tramo de la promocion iniciada en el bloque 12: el CSS que hasta esta
   consolidacion vivia en un widget HTML de cada una de estas dos paginas. Cero
   clases renombradas — los selectores son los mismos que ya servia el sitio — y
   el bloque va al final del archivo, la misma posicion en la cascada que
   ocupaba el <style> del cuerpo: el handle del child
   (`hello-elementor-child-style`) se encola despues de todas las hojas
   `elementor-post-N`, y las unicas hojas que quedan mas abajo en el body son
   las generadas por Elementor para los templates 43/44 del header y el footer,
   cuyos selectores (`.elementor-44 .elementor-element-ftNNNN`) no cruzan con
   ninguna clase `pv-`.

   Las dos paginas no comparten un solo selector (verificado regla por regla),
   asi que el orden relativo entre 13.1 y 13.2 es indiferente; lo que se
   preserva es el orden INTERNO de cada una.

   Convencion heredada de los bloques 9 y 12: los contenedores propios parten de
   cero, y hay que calificar con `.e-con.e-flex` y declarar la VARIABLE ademas
   de la propiedad (Elementor fija layout y padding desde custom properties con
   selector (0,2,0)).
   ========================================================================= */

/* --- 13.0 Reset de los contenedores propios de las dos paginas ------------
   Las dos traian la misma declaracion repetida sobre sus propias listas de
   contenedores; aca van fusionadas en un unico bloque (mismo criterio que el
   12.0). Elementor trae gap 20px y paddings: cada medida se declara abajo. */
.pv-hhero, .pv-hhero__inner, .pv-hhero__band, .pv-hhero__bandinner,
.pv-hexc, .pv-hexc__media, .pv-hbgslide, .pv-hexc__inner, .pv-hexc__card,
.pv-hcrema, .pv-htrab, .pv-htrab__grid, .pv-htrab__col, .pv-htrab__div,
.pv-hcont, .pv-hcont__wa, .pv-hcont__div, .pv-hform,
.pv-hrev, .pv-hrev__inner, .pv-hrev__side, .pv-hrev__cards, .pv-hrev-card,
.pv-htop,
.pv-gal-hero, .pv-gal-hero__inner, .pv-gal-accesos, .pv-gal-cats, .pv-gal-cat {
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--padding-block-start: 0px; --padding-block-end: 0px;
	--padding-inline-start: 0px; --padding-inline-end: 0px;
	gap: 0;
	padding: 0;
}

/* -------------------------------------------------------------------------
   13.1 Home (pagina 15, portada)

   Medidas del comp de diseno de la Home (pagina de 1980px; el contenido vive
   entre x=270 y x=1710 => contenedor de 1440px, 1:1 con el resto del sitio).
   ------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------
   1. Hero (comp y=0..1025)
   ------------------------------------------------------------------------- */
.pv-hhero.e-con.e-flex {
	--flex-direction: column;
	--justify-content: flex-start;
	display: flex;
	flex-direction: column;
	min-height: 1025px;
	background-position: center center;
	background-size: cover;
}

.pv-hhero .pv-hhero__inner {
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
	padding-top: 590px; /* linea 1 del H1 arranca en y=627.4 del comp */
}

.pv-hhero .pv-hhero__title h1.elementor-heading-title {
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 68px;
	font-weight: 400;
	line-height: 78px; /* medido: 705.4 - 627.4 */
	text-align: left;
}

/* Banda inferior: overlay navy al 45% (medido por diferencia de pixeles a los
   dos lados de la linea de y=864.3) + hairline blanca, como en las fichas. */
.pv-hhero .pv-hhero__band {
	width: 100%;
	min-height: 161px; /* 1025 - 864.3 */
	margin-top: auto;
	border-top: 1px solid rgba(255, 255, 255, 0.09);
	background: rgba(0, 0, 23, 0.45);
}

.pv-hhero__bandinner.e-con.e-flex {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: center;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: var(--pv-container);
	min-height: 160px;
	margin: 0 auto;
}

/* Mini-indice de las cinco excursiones + VER TODAS */
/* En el comp el indice no esta centrado en la banda: sube 12px respecto del
   eje, y el enlace de la derecha baja 4. */
.pv-hhero__index {
	width: auto;
	max-width: 100%;
	padding-bottom: 24px;
}

.pv-hhero__index .pv-hindex {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-hhero__index .pv-hindex__item {
	position: relative;
	display: flex;
	align-items: center;
}

/* El separador del comp mide 52px de alto, no el alto del item. */
.pv-hhero__index .pv-hindex__item::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 1px;
	height: 52px;
	background: rgba(255, 255, 255, 0.45);
	transform: translateY(-50%);
}

.pv-hhero__index .pv-hindex__item a {
	display: block;
	padding: 4px 43px 4px 0;
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 28.7px; /* medido: 932.7 - 904.0 */
	text-decoration: none;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-hhero__index .pv-hindex__item + .pv-hindex__item a {
	padding-left: 43px;
}

.pv-hhero__index .pv-hindex__item a:hover,
.pv-hhero__index .pv-hindex__item a:focus-visible {
	color: var(--pv-cream);
	text-decoration: underline 1px var(--pv-gold);
	text-underline-offset: 6px;
}

.pv-hhero__all {
	width: auto;
	flex: 0 0 auto;
	margin-top: 9px;
}

.pv-hhero__all .pv-hhero__alllink {
	color: var(--pv-white);
	font-family: var(--pv-font-body);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.6px;
	line-height: 20px;
	text-transform: uppercase;
}

/* -------------------------------------------------------------------------
   2. Seccion de excursion: slider de fondo + card crema flotante
   (comp: cinco bandas de ~986px, card en x=269.3 = borde izquierdo del
   contenedor de 1440, ancho 686, alto 483, centrada en vertical)
   ------------------------------------------------------------------------- */
.pv-hexc.e-con.e-flex {
	--flex-direction: column;
	--justify-content: center;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 986px;
	padding: 60px 0;
	overflow: hidden;
	background-color: var(--pv-navy);
	scroll-margin-top: 110px;
}

/* Capa de fotos: apiladas, fundido por opacidad. */
.pv-hexc .pv-hexc__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.pv-hexc .pv-hexc__media > .pv-hbgslide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 0.55s var(--pv-ease);
}

.pv-hexc .pv-hexc__media > .pv-hbgslide.is-active {
	opacity: 1;
}

.pv-hexc .pv-hbgslide__foto,
.pv-hexc .pv-hbgslide__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pv-hexc__inner.e-con.e-flex {
	--flex-direction: row;
	--justify-content: flex-start;
	--align-items: center;
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
}

.pv-hexc .pv-hexc__card {
	width: 686px;
	max-width: 100%;
	min-height: 483px;
	padding: 48px 54px 26px;
	border-radius: var(--pv-radius-card);
	background: var(--pv-cream);
}

.pv-hexc__card .pv-hexc__title h2.elementor-heading-title {
	margin: 0;
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 68px;
	font-weight: 400;
	line-height: 68px;
}

.pv-hexc__card .pv-hexc__text {
	margin-top: 22px;
}

.pv-hexc__card .pv-hexc__text p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
}

/* "CONOCER MAS" con el subrayado corto del comp (56.8px), que crece al pasar
   el mouse: mismo gesto que el submit del formulario (bloque 11.8 del child).
   La flecha va por ::after de .pv-arrow-link, no escrita en el texto. */
/* El comp sostiene la card en 483px con titulos de dos o tres lineas:
   comprime el aire entre el enlace y la fila de datos. Aca lo resuelve el
   `auto` de la fila de datos (que la ancla al pie) con un minimo dado por
   el padding del enlace. */
.pv-hexc__card .pv-hexc__cta {
	margin-top: 17px;
	padding-bottom: 28px;
}

.pv-hexc__more {
	display: inline-flex;
	padding-bottom: 8px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 0 100% / 57px 1px no-repeat;
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.6px;
	line-height: 16px;
	text-transform: uppercase;
	transition: background-size var(--pv-t-slow) var(--pv-ease);
}

.pv-hexc__more:hover,
.pv-hexc__more:focus-visible {
	background-size: 100% 1px;
}

/* Fila de datos: linea fina arriba y abajo, reloj + dato izquierdo en semibold
   y temporada a la derecha (comp y=1657.7 / 1696.5). */
.pv-hexc__card .pv-hexc__meta {
	margin-top: auto;
}

.pv-hexc__card .pv-hmeta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 9px 0 10px;
	border-top: 1px solid rgba(128, 128, 128, 0.5);
	border-bottom: 1px solid rgba(128, 128, 128, 0.5);
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	line-height: 20px;
}

.pv-hexc__card .pv-hmeta__left {
	display: flex;
	align-items: center;
	gap: 9px;
	font-weight: 600;
}

.pv-hexc__card .pv-hmeta__left svg {
	flex: 0 0 auto;
	display: block;
}

.pv-hexc__card .pv-hmeta__right {
	font-weight: 400;
}

/* Flechas del slider de fondo, al pie de la card. */
.pv-hexc__card .pv-hexc__nav {
	margin-top: 15px;
}

.pv-hexc__card .pv-hbgnav {
	display: flex;
	align-items: center;
	gap: 20px;
}

.pv-hbgnav__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--pv-gray);
	cursor: pointer;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-hbgnav__arrow:hover,
.pv-hbgnav__arrow:focus-visible {
	background: none;
	color: var(--pv-gold);
}

.pv-hbgnav__arrow svg {
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-hbgnav__arrow[data-pv-bgprev]:hover svg,
.pv-hbgnav__arrow[data-pv-bgprev]:focus-visible svg {
	transform: translateX(-3px);
}

.pv-hbgnav__arrow[data-pv-bgnext]:hover svg,
.pv-hbgnav__arrow[data-pv-bgnext]:focus-visible svg {
	transform: translateX(3px);
}

/* Riel vertical del comp: rotulo EXCURSIONES + puntos del slider de fondo.
   El comp dibuja cinco puntos fijos (identicos en los tres estados de cada
   PDF de slides, o sea uno por seccion); por definicion de diseno del sitio
   los puntos navegan las tres fotos de ESTA excursion, asi que son tres. */
.pv-hexc .pv-hexc__rail {
	position: absolute;
	top: 385px;
	right: max(40px, calc((100% - var(--pv-container)) / 2 + 8px));
	z-index: 2;
	width: 20px;
}

.pv-hexc .pv-hrail {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pv-hexc .pv-hrail__label {
	color: var(--pv-cream);
	font-family: var(--pv-font-body);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.1px;
	line-height: 20px;
	text-transform: uppercase;
	white-space: nowrap;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
}

.pv-hexc .pv-hrail__dots {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.pv-hexc .pv-hrail__dot {
	display: block;
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(235, 230, 225, 0.45);
	cursor: pointer;
	transition:
		background-color var(--pv-t-base) var(--pv-ease),
		transform var(--pv-t-base) var(--pv-ease);
}

.pv-hexc .pv-hrail__dot:hover,
.pv-hexc .pv-hrail__dot:focus-visible {
	background: rgba(235, 230, 225, 0.75);
	transform: scale(1.15);
}

.pv-hexc .pv-hrail__dot.is-active {
	background: #EBE6E1;
}

/* Elevacion sobria de la card, el mismo gesto del bloque 11.3 del child. */
.pv-hexc .pv-hexc__card {
	transition:
		box-shadow var(--pv-t-slow) var(--pv-ease),
		transform var(--pv-t-slow) var(--pv-ease);
}

.pv-hexc .pv-hexc__card:hover,
.pv-hexc .pv-hexc__card:focus-within {
	box-shadow: 0 18px 40px rgba(0, 0, 24, 0.16);
	transform: translateY(-4px);
}

/* -------------------------------------------------------------------------
   3. Panel claro: un solo fondo continuo para "Como trabajamos" + contacto +
   reseñas + back to top (en el comp es una sola imagen, y=5945.6..8213).
   ------------------------------------------------------------------------- */
.pv-hcrema.e-con.e-flex {
	--flex-direction: column;
	display: flex;
	flex-direction: column;
	padding: 0 0 68px;
	background-color: var(--pv-cream);
	background-position: center top;
	background-repeat: repeat-y;
	background-size: 100% auto;
}

/* --- 3.1 Como trabajamos ------------------------------------------------- */
.pv-hcrema .pv-htrab {
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
	padding-top: 102px; /* eyebrow en y=6047 del comp */
}

.pv-hcrema .pv-htrab__eyebrow div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0.6px;
	line-height: 31px;
	text-align: center;
	text-transform: uppercase;
}

.pv-hcrema .pv-htrab__title {
	margin-top: 37px;
}

.pv-hcrema .pv-htrab__title h2.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 52px;
	text-align: center;
}

.pv-htrab__grid.e-con.e-flex {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: stretch;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 92px;
	margin-top: 93px;
}

.pv-htrab__col.e-con.e-flex {
	--flex-direction: column;
	display: flex;
	flex-direction: column;
	width: auto;
}

.pv-htrab__col .pv-htrab__num div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 52px;
}

.pv-htrab__col .pv-htrab__sub {
	margin-top: 17px;
}

.pv-htrab__col .pv-htrab__sub h3.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 36px;
	font-weight: 400;
	line-height: 40px;
}

.pv-htrab__col .pv-htrab__body {
	margin-top: 15px;
	flex: 1 1 auto;
}

.pv-htrab__col .pv-htrab__body p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
}

.pv-htrab__col .pv-htrab__div {
	flex: 0 0 auto;
	width: 177px;
	min-height: 1px;
	height: 1px;
	margin-top: 33px;
	background: var(--pv-gold-line);
}

.pv-hcrema .pv-htrab__cta {
	margin-top: 82px;
	text-align: center;
}

/* --- 3.2 Contacto -------------------------------------------------------- */
.pv-hcrema .pv-hcont {
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
	padding-top: 137px; /* eyebrow en y=6699.8 */
}

.pv-hcont .pv-hcont__eyebrow div.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 24px;
	font-weight: 400;
	line-height: 31px;
	text-align: center;
}

.pv-hcont .pv-hcont__title {
	margin-top: 26px;
}

.pv-hcont .pv-hcont__title h2.elementor-heading-title {
	color: var(--pv-navy);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 52px;
	text-align: center;
}

.pv-hcont .pv-hcont__lead {
	margin-top: 24px;
}

.pv-hcont .pv-hcont__lead p {
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
	text-align: center;
}

.pv-hcont .pv-hcont__wa {
	margin-top: 19px;
}

.pv-hcont .pv-hcont__icon img {
	display: block;
	width: 37.7px; /* el asset compartido (id 69) trae ~20% de aire en el lienzo */
	height: 37.7px;
	margin: -3.5px auto;
}

.pv-hcont .pv-hcont__icon a {
	display: block;
}

.pv-hcont .pv-hcont__dato {
	margin-top: 12px;
}

.pv-hcont .pv-hcont__dato div.elementor-heading-title,
.pv-hcont .pv-hcont__dato div.elementor-heading-title a {
	color: var(--pv-navy);
	font-family: var(--pv-font-body);
	font-size: 18px;
	font-weight: 500;
	line-height: 24px;
	text-align: center;
	text-decoration: none;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-hcont .pv-hcont__wa:hover .pv-hcont__dato div.elementor-heading-title a,
.pv-hcont .pv-hcont__dato div.elementor-heading-title a:focus-visible {
	color: var(--pv-gold);
}

.pv-hcont .pv-hcont__icon img {
	transition:
		opacity var(--pv-t-base) var(--pv-ease),
		transform var(--pv-t-base) var(--pv-ease);
}

.pv-hcont .pv-hcont__wa:hover .pv-hcont__icon img,
.pv-hcont .pv-hcont__wa:focus-within .pv-hcont__icon img {
	opacity: 0.9;
	transform: translateY(-2px);
}

.pv-hcont .pv-hcont__div {
	width: 91px;
	min-height: 1px;
	height: 1px;
	flex: 0 0 auto;
	margin: 26px auto 0;
	background: var(--pv-gold);
}

/* --- 3.3 Formulario, sin card contenedora (asi lo pide el comp) ---------- */
.pv-hcrema .pv-hform {
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
	padding-top: 50px;
}

.pv-hform .pv-hform__title h2.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 31px;
	text-align: center;
}

/* Regla dorada bajo el titulo, del ancho exacto del formulario. */
.pv-hform .pv-hform__title h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 839px;
	max-width: 100%;
	height: 1px;
	margin: 48px auto 0;
	background: var(--pv-gold);
}

.pv-hform .pv-hform__shortcode {
	width: 839px;
	max-width: 100%;
	margin: 0 auto;
}

.pv-hform .pv-form input[type="text"],
.pv-hform .pv-form input[type="email"],
.pv-hform .pv-form input[type="tel"],
.pv-hform .pv-form textarea {
	background: transparent;
}

/* --- 3.4 Reseñas: SECCION OCULTA ----------------------------------------
   Estructura montada, sin reseñas: se activa cuando el cliente entregue las
   reales. Doble candado: las clases de Elementor por dispositivo y esta regla. */
.pv-hcrema .pv-hrev,
.pv-hrev {
	display: none !important;
}

.pv-hrev__inner.e-con.e-flex {
	--flex-direction: row;
	--align-items: center;
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
	max-width: var(--pv-container);
	margin: 0 auto;
}

.pv-hrev__side.e-con.e-flex {
	--flex-direction: column;
	--align-items: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 420px;
}

.pv-hrev__cards.e-con.e-flex {
	--flex-direction: row;
	display: flex;
	flex-direction: row;
	gap: 27px;
	width: auto;
}

.pv-hrev-card.e-con.e-flex {
	--flex-direction: column;
	display: flex;
	flex-direction: column;
	width: 225px;
	min-height: 225px;
	padding: 22px;
	border: 1px solid rgba(146, 142, 137, 0.5);
	border-radius: 4px;
	background: var(--pv-white);
}

/* --- 3.5 Back to top ----------------------------------------------------- */
.pv-hcrema .pv-htop {
	margin-top: 62px;
	text-align: center;
}

/* -------------------------------------------------------------------------
   4. Adaptacion responsive. Los comps son solo de escritorio: por debajo del
   ancho de contenido se conservan proporciones y se recolocan bloques.
   ------------------------------------------------------------------------- */
@media (max-width: 1520px) {
	.pv-hhero .pv-hhero__inner,
	.pv-hhero__bandinner.e-con.e-flex,
	.pv-hexc__inner.e-con.e-flex,
	.pv-hcrema .pv-htrab,
	.pv-hcrema .pv-hcont,
	.pv-hcrema .pv-hform,
	.pv-hrev__inner.e-con.e-flex {
		padding-left: 40px;
		padding-right: 40px;
	}

	.pv-hexc .pv-hexc__rail {
		right: 40px;
	}

	.pv-hhero__index .pv-hindex__item a {
		padding-right: 26px;
	}

	.pv-hhero__index .pv-hindex__item + .pv-hindex__item a {
		padding-left: 26px;
	}
}

@media (max-width: 1200px) {
	.pv-hhero .pv-hhero__title h1.elementor-heading-title {
		font-size: 54px;
		line-height: 62px;
	}

	.pv-hhero__index .pv-hindex__item a {
		font-size: 19px;
		line-height: 24px;
	}

	.pv-hexc__card .pv-hexc__title h2.elementor-heading-title {
		font-size: 52px;
		line-height: 56px;
	}
}

@media (max-width: 1024px) {
	.pv-hhero.e-con.e-flex {
		min-height: 760px;
	}

	.pv-hhero .pv-hhero__inner {
		padding-top: 330px;
	}

	.pv-hhero .pv-hhero__band {
		min-height: 0;
	}

	.pv-hhero__bandinner.e-con.e-flex {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		min-height: 0;
		padding-top: 26px;
		padding-bottom: 26px;
	}

	.pv-hexc.e-con.e-flex {
		min-height: 0;
		padding: 120px 0;
	}

	.pv-hexc .pv-hexc__card {
		width: 100%;
		min-height: 0;
		padding: 36px 34px 24px;
	}

	.pv-hexc .pv-hexc__rail {
		top: auto;
		right: 24px;
		bottom: 34px;
	}

	.pv-htrab__grid.e-con.e-flex {
		grid-template-columns: 1fr;
		column-gap: 0;
		row-gap: 54px;
		margin-top: 56px;
	}

	.pv-htrab__col .pv-htrab__div {
		width: 100%;
		max-width: 177px;
	}

	.pv-hcrema .pv-htrab {
		padding-top: 64px;
	}

	.pv-hcrema .pv-hcont {
		padding-top: 92px;
	}
}

@media (max-width: 767px) {
	.pv-hhero .pv-hhero__inner,
	.pv-hhero__bandinner.e-con.e-flex,
	.pv-hexc__inner.e-con.e-flex,
	.pv-hcrema .pv-htrab,
	.pv-hcrema .pv-hcont,
	.pv-hcrema .pv-hform {
		padding-left: 20px;
		padding-right: 20px;
	}

	.pv-hhero.e-con.e-flex {
		min-height: 640px;
	}

	.pv-hhero .pv-hhero__inner {
		padding-top: 220px;
	}

	.pv-hhero .pv-hhero__title h1.elementor-heading-title {
		font-size: 38px;
		line-height: 46px;
	}

	/* El corte de dos lineas del comp asume 1440px de ancho. */
	.pv-hhero .pv-hhero__title h1.elementor-heading-title br,
	.pv-hcont .pv-hcont__eyebrow br,
	.pv-hcont .pv-hcont__lead br,
	.pv-hexc__card .pv-hexc__text br {
		display: none;
	}

	.pv-hhero__index .pv-hindex {
		flex-direction: column;
	}

	.pv-hhero__index .pv-hindex__item {
		border-bottom: 1px solid rgba(255, 255, 255, 0.28);
	}

	.pv-hhero__index .pv-hindex__item::after {
		display: none;
	}

	.pv-hhero__index .pv-hindex__item a,
	.pv-hhero__index .pv-hindex__item + .pv-hindex__item a {
		padding: 9px 0;
		font-size: 18px;
		line-height: 24px;
	}

	.pv-hexc.e-con.e-flex {
		padding: 90px 0;
	}

	.pv-hexc__card .pv-hexc__title h2.elementor-heading-title {
		font-size: 36px;
		line-height: 42px;
	}

	.pv-hexc__card .pv-hexc__title h2.elementor-heading-title br {
		display: none;
	}

	.pv-hexc__card .pv-hmeta {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}

	.pv-hexc .pv-hexc__rail {
		right: 14px;
	}

	.pv-hcrema .pv-htrab__title h2.elementor-heading-title,
	.pv-hcont .pv-hcont__title h2.elementor-heading-title {
		font-size: 34px;
		line-height: 40px;
	}

	.pv-htrab__col .pv-htrab__sub h3.elementor-heading-title {
		font-size: 28px;
		line-height: 34px;
	}

	.pv-hform .pv-hform__title h2.elementor-heading-title::after {
		margin-top: 28px;
	}
}

/* -------------------------------------------------------------------------
   13.2 Galeria (pagina 23)

   Medidas del comp `Demo-Galeria` (pagina de 1980px; 1pt de diseno = 1px de
   pantalla) sobre el contenedor de 1440px del sitio, centrado igual que el
   header y el footer: su borde izquierdo cae en x=270. A viewport 1980 el
   render queda 1:1 contra el comp.

   COLOR: el export de este comp trae la familia crema/dorada mas oscura que
   los demas comps (crema D6D0CC vs ECE6E2, dorado 8A8061 vs A08E61, mientras
   808080, FFFFFF y 000018 quedan identicos). Es deriva del export, no un
   cambio de paleta: se usan los tokens del sitio.

   NO se promueve `.pv-gal-css{display:none}`: existia solo para ocultar el
   widget HTML que llevaba esta hoja, y ese widget ya no esta.
   ------------------------------------------------------------------------- */
/* --- 1. Hero ------------------------------------------------------------
   Variante del hero de ficha: una sola foto, texto alineado al borde izquierdo
   del contenedor (x=270 en el comp) y, apoyada al pie, la banda de accesos
   rapidos a sangre. */

.pv-gal-hero.pv-hero {
	min-height: 1025px;
	padding: 0;
	justify-content: flex-start;
}

.pv-gal-hero .pv-gal-hero__inner.e-con.e-flex {
	--width: 100%;
	width: 100%;
	max-width: 100%;
	padding: 562px max(24px, calc((100% - 1440px) / 2)) 0;
}

.pv-gal-hero .pv-hero__title h1.elementor-heading-title {
	font-size: 68px;
	line-height: 78px;
	text-align: left;
}

.pv-gal-hero .pv-hero__lead { margin-top: 17px; }

.pv-gal-hero .pv-hero__lead p {
	max-width: 640px;
	margin: 0;
	color: var(--pv-cream);
	font-size: 18px;
	line-height: 22px;
	text-align: left;
}

.pv-gal-hero .pv-gal-hero__cta { margin-top: 38px; }
.pv-gal-hero .pv-gal-hero__cta .elementor-button { width: 156px; }

/* --- 1b. Banda de accesos rapidos ----------------------------------------
   Seis celdas iguales con separadores finos. El velo navy sobre la foto mide
   30% (derivado por pixeles: el comp da (24,23,29) donde la foto sola da
   (34,33,32)). Orden: el del comp esta desalineado con el de las secciones de
   abajo (Vuelos 3o / Cabalgatas 5o arriba, al reves abajo); se homogeneiza al
   orden REAL de las secciones. */

.pv-gal-hero .pv-gal-accesos.e-con.e-flex {
	--width: 100%;
	--justify-content: center;
	width: 100%;
	max-width: 100%;
	--padding-block-end: 27.6px;
	min-height: 161px;
	margin-top: auto;
	padding-bottom: 27.6px;
	justify-content: center;
	background: rgba(0, 0, 24, 0.3);
}

/* El `max-width` va en el div INTERNO: Elementor pisa el del wrapper del
   widget con un `max-width:100%` posterior. */
.pv-gal-accesos .pv-gal-accesos__row {
	display: flex;
	width: 100%;
	max-width: 1559px;
	margin: 0 auto;
}

.pv-gal-acceso {
	position: relative;
	flex: 1 1 0;
	padding: 0 12px;
	color: var(--pv-white);
	font-family: var(--pv-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 28.7px;
	text-align: center;
	text-decoration: none;
	transition: color var(--pv-t-fast) var(--pv-ease);
}

.pv-gal-acceso:hover,
.pv-gal-acceso:focus-visible {
	color: var(--pv-gold);
	text-decoration: none;
}

.pv-gal-acceso + .pv-gal-acceso::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 1px;
	height: 52px;
	background: rgba(255, 255, 255, 0.2);
	transform: translateY(-50%);
}

/* --- 2. Seis secciones de categoria -------------------------------------- */

.pv-gal-cats {
	padding: 77px 0 143px;
	background-color: var(--pv-cream);
}

.pv-gal-cat.e-con.e-flex {
	--width: 100%;
	width: 100%;
	max-width: 100%;
	padding: 0 max(24px, calc((100% - 1440px) / 2));
	scroll-margin-top: 120px;
}

.pv-gal-cat + .pv-gal-cat { margin-top: 78px; }

.pv-gal-cat .pv-gal-cat__title h2.elementor-heading-title {
	color: var(--pv-gold);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 57.6px;
	text-align: left;
}

.pv-gal-cat .pv-gal-cat__intro { margin-top: 19px; }

.pv-gal-cat .pv-gal-cat__intro p {
	max-width: 660px;
	margin: 0;
	color: var(--pv-gray);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 19.2px;
	text-align: left;
}

/* Fila de acciones: el comp deja el link de la ficha pegado al borde izquierdo
   del contenedor y el del lightbox a 24px del derecho. Los dos van al mismo
   tope: el comp baja el de la derecha 5.9px, desalineacion que se normaliza. */
.pv-gal-cat .pv-gal-cat__links {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-top: 18px;
	padding-right: 24px;
}

/* Boton de consulta por categoria. El doc de textos lo pide para cada una de
   las seis ("Boton: Ver experiencia completa ... Boton: Consultar"), a
   continuacion del link a la ficha; el comp dibuja solo los dos links, asi que
   la pastilla va en su propia linea, entre la fila de links y la grilla, para
   no alterar la fila que ya reproduce el comp. Misma pastilla dorada con
   icono de WhatsApp que el resto del sitio (bloque 9.2). */
.pv-gal-cat .pv-gal-cat__consultar { margin-top: 22px; }

.pv-gal-cat__ver,
.pv-gal-cat__todas {
	color: var(--pv-gold);
	font-family: var(--pv-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 22px;
	text-decoration: none;
	text-transform: uppercase;
}

/* Subrayado corto del comp (56.8px bajo el arranque del texto) que crece al
   ancho completo en hover, mismo gesto que `.pv-vergaleria` del child. */
.pv-gal-cat__ver {
	padding-bottom: 11px;
	background: linear-gradient(var(--pv-gold), var(--pv-gold)) 0 100% / 57px 1px no-repeat;
	transition:
		background-size var(--pv-t-slow) var(--pv-ease),
		color var(--pv-t-base) var(--pv-ease);
}

.pv-gal-cat__ver:hover,
.pv-gal-cat__ver:focus-visible {
	background-size: 100% 1px;
	color: var(--pv-gold-soft);
}

/* Grilla 3x3 de puntos dorados del comp (13.3x13.4, punto 2.5, paso 5.45). */
.pv-gal-cat__todas {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	cursor: pointer;
	transition: color var(--pv-t-base) var(--pv-ease);
}

.pv-gal-cat__todas::before {
	content: "";
	flex: 0 0 auto;
	width: 13.3px;
	height: 13.4px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.3 13.4'%3E%3Cg fill='%23A08E61'%3E%3Ccircle cx='1.25' cy='1.25' r='1.25'/%3E%3Ccircle cx='6.65' cy='1.25' r='1.25'/%3E%3Ccircle cx='12.05' cy='1.25' r='1.25'/%3E%3Ccircle cx='1.25' cy='6.7' r='1.25'/%3E%3Ccircle cx='6.65' cy='6.7' r='1.25'/%3E%3Ccircle cx='12.05' cy='6.7' r='1.25'/%3E%3Ccircle cx='1.25' cy='12.15' r='1.25'/%3E%3Ccircle cx='6.65' cy='12.15' r='1.25'/%3E%3Ccircle cx='12.05' cy='12.15' r='1.25'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--pv-t-base) var(--pv-ease);
}

.pv-gal-cat__todas:hover,
.pv-gal-cat__todas:focus-visible { color: var(--pv-gold-soft); }

.pv-gal-cat__todas:hover::before,
.pv-gal-cat__todas:focus-visible::before { transform: scale(1.12); }

/* --- 3. Grilla bento de la Galeria ---------------------------------------
   Variante del componente compartido (12.1a): tres columnas — una foto alta a
   la izquierda (719x505 en el comp) y cuatro apaisadas (333x239) en 2x2. Con
   gap 27px las tres columnas suman los 1440px del contenedor y el alto de la
   alta cae solo (239x2 + 27 = 505). */

.pv-bento--galeria.pv-bento.e-con.e-flex {
	--gap: 27px;
	--row-gap: 27px;
	--column-gap: 27px;
	grid-template-columns: 718fr 333fr 333fr;
	gap: 27px;
	max-width: 100%;
	margin: 40px 0 0;
}

.pv-bento--galeria .pv-bento__tile.e-con.e-flex { aspect-ratio: 333/239; }

.pv-bento--galeria .pv-bento__tile--tall.e-con.e-flex {
	grid-row: span 2;
	aspect-ratio: auto;
}

/* --- 4. Banda CTA -------------------------------------------------------- */

.pv-gal-cta.pv-banner {
	min-height: 611px;
	padding: 74px 0 0;
	background-position: center center;
}

.pv-gal-cta .pv-gal-cta__title h2.elementor-heading-title {
	color: var(--pv-cream);
	font-family: var(--pv-font-heading);
	font-size: 48px;
	font-weight: 400;
	line-height: 56px;
	text-align: center;
}

.pv-gal-cta .pv-banner__text { margin-top: 17px; }

.pv-gal-cta .pv-banner__text p {
	max-width: 560px;
	font-weight: 400;
}

.pv-gal-cta .pv-banner__icon { margin-top: 28px; }

.pv-gal-cta .pv-banner__icon img {
	width: 31px;
	height: 31px;
}

.pv-gal-cta .pv-banner__title { margin-top: 12px; }

.pv-gal-cta .pv-banner__title h3.elementor-heading-title {
	font-size: 18px;
	line-height: 26px;
}

.pv-gal-cta .pv-banner__title h3.elementor-heading-title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--pv-t-base) var(--pv-ease);
}

.pv-gal-cta .pv-banner__title h3.elementor-heading-title a:hover,
.pv-gal-cta .pv-banner__title h3.elementor-heading-title a:focus-visible {
	color: var(--pv-white);
}

.pv-gal-cta .pv-banner__top { margin-top: 120px; }

/* --- 5. Adaptacion responsive --------------------------------------------
   El contenedor de 1440px ya se achica solo con el `max()` del padding; aca van
   solo los saltos donde la medida fija del comp deja de entrar. */

@media (max-width: 1560px) {
	.pv-gal-accesos .pv-gal-accesos__row { max-width: calc(100% - 48px); }
}

@media (max-width: 1200px) {
	.pv-gal-hero .pv-gal-hero__inner.e-con.e-flex { padding-top: 420px; }
	.pv-gal-hero .pv-hero__title h1.elementor-heading-title { font-size: 56px; line-height: 64px; }
	.pv-gal-acceso { font-size: 20px; line-height: 25px; }
	.pv-gal-cat .pv-gal-cat__title h2.elementor-heading-title { font-size: 40px; line-height: 48px; }
	.pv-gal-cta .pv-gal-cta__title h2.elementor-heading-title { font-size: 40px; line-height: 48px; }
}

@media (max-width: 1024px) {
	.pv-gal-hero.pv-hero { min-height: 820px; }
	.pv-gal-hero .pv-gal-hero__inner.e-con.e-flex { padding-top: 300px; }
	.pv-gal-accesos .pv-gal-accesos__row { flex-wrap: wrap; }
	.pv-gal-acceso { flex: 0 0 33.333%; padding: 10px 12px; font-size: 18px; line-height: 22px; }
	.pv-gal-acceso + .pv-gal-acceso::before { display: none; }
	.pv-gal-hero .pv-gal-accesos.e-con.e-flex { min-height: 0; padding: 18px 0; }
	.pv-gal-cats { padding: 60px 0 100px; }
	.pv-gal-cat + .pv-gal-cat { margin-top: 60px; }
	.pv-bento--galeria.pv-bento.e-con.e-flex {
		grid-template-columns: repeat(2, 1fr);
		margin-top: 40px;
	}
	.pv-gal-cta.pv-banner { min-height: 0; padding: 60px 20px 70px; }
	.pv-gal-cta .pv-banner__top { margin-top: 60px; }
}

@media (max-width: 767px) {
	.pv-gal-hero.pv-hero { min-height: 640px; }
	.pv-gal-hero .pv-gal-hero__inner.e-con.e-flex { padding: 190px 20px 0; }
	.pv-gal-hero .pv-hero__title h1.elementor-heading-title { font-size: 40px; line-height: 46px; }
	.pv-gal-hero .pv-hero__lead p { font-size: 16px; line-height: 21px; }
	.pv-gal-acceso { flex: 0 0 50%; font-size: 16px; line-height: 20px; }
	.pv-gal-cats { padding: 48px 0 72px; }
	.pv-gal-cat.e-con.e-flex { padding: 0 20px; }
	.pv-gal-cat .pv-gal-cat__title h2.elementor-heading-title { font-size: 30px; line-height: 36px; }
	.pv-gal-cat .pv-gal-cat__intro p { max-width: 100%; line-height: 21px; }
	/* Los cortes de linea del comp asumen el ancho de escritorio. */
	.pv-gal-cat__intro br,
	.pv-gal-hero .pv-hero__lead br,
	.pv-gal-cta .pv-banner__text br { display: none; }
	.pv-gal-cat .pv-gal-cat__links {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-right: 0;
	}
	.pv-gal-cat__ver,
	.pv-gal-cat__todas { font-size: 14px; }
	.pv-bento--galeria.pv-bento.e-con.e-flex {
		--gap: 18px;
		--row-gap: 18px;
		--column-gap: 18px;
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 28px;
	}
	.pv-bento--galeria .pv-bento__tile--tall.e-con.e-flex {
		grid-row: span 1;
		aspect-ratio: 333/239;
	}
	.pv-gal-cta.pv-banner { padding: 48px 20px 56px; }
	.pv-gal-cta .pv-gal-cta__title h2.elementor-heading-title { font-size: 28px; line-height: 34px; }
	.pv-gal-cta .pv-banner__top { margin-top: 44px; }
}


/* -------------------------------------------------------------------------
   14. Alto de las bandas a sangre acotado a la pantalla

   Las bandas a sangre se maquetaron con el alto exacto del comp, que es una
   pagina de 1980px de ancho. En un monitor de 1920 el alto util de la ventana
   ronda los 950px una vez descontada la barra del navegador, asi que esas
   bandas (1025px el hero, 984-986px las de excursion) quedaban por encima del
   alto de pantalla: el hero se veia cortado por abajo y ninguna banda entraba
   entera de un vistazo.

   El alto de diseno pasa a ser un TECHO y no un valor fijo: cada banda toma el
   menor entre su alto de comp y el alto util de la ventana. Se usa `100svh`
   (small viewport height), que en movil mide con las barras del navegador
   desplegadas y por lo tanto no salta al scrollear. El header del sitio flota
   sobre el hero (position:absolute) y no ocupa lugar en el flujo, asi que no
   hay nada que restarle.

   Solo se toca `min-height`, que es un PISO: si el contenido de una banda pide
   mas alto que la ventana, la banda crece igual y nada se recorta.

   Efecto buscado ademas sobre la foto: con la caja mas baja que la proporcion
   del comp, `background-size: cover` pasa a escalar por el ANCHO en vez de por
   el alto, y la foto se ve entera de lado a lado (con el alto fijo se perdia
   ~3% a cada costado, porque el comp mide 1980 de ancho y la pantalla 1920).

   De 1024px para abajo no se aplica: ahi mandan los altos ya calibrados de
   cada bloque responsive.
   ------------------------------------------------------------------------- */

@media (min-width: 1025px) {

	/* Heros de ficha, Nosotros, Hospedaje, Galeria (comp: 1025px). */
	.pv-hero.e-con.e-flex { min-height: min(1025px, 100svh); }

	/* Hero de la portada (comp: 1025px). */
	.pv-hhero.e-con.e-flex { min-height: min(1025px, 100svh); }

	/* Las cinco bandas de excursion de la portada (comp: 986px). */
	.pv-hexc.e-con.e-flex { min-height: min(986px, 100svh); }

	/* Bandas de modalidad de las fichas. Hospedaje queda afuera: su alto lo
	   dan los paddings del comp, no un min-height. */
	.pv-modalidad.e-con.e-flex:not(.pv-modalidad--hospedaje) { min-height: min(986px, 100svh); }
	#pv-full-day-clasica.e-con.e-flex { min-height: min(940px, 100svh); }
	#pv-full-day-premium.e-con.e-flex { min-height: min(985px, 100svh); }

	/* Cabalgatas (dos cards sobre la foto), Trekking (siete), Vuelos (cinco)
	   y la banda de conectividad de Vuelos. */
	.pv-modalidades-cards.e-con.e-flex { min-height: min(984px, 100svh); }
	.pv-trek.e-con.e-flex { min-height: min(985px, 100svh); }
	.pv-vuelo.e-con.e-flex { min-height: min(984px, 100svh); }
	.pv-conect.e-con.e-flex { min-height: min(984px, 100svh); }
}
