/************ Oddino Vertical Scroll ************/
/************************************************/

/* El CSS de Elementor trae:
       @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth } }
   Con eso activo, el navegador SUAVIZA por su cuenta cada escritura de
   scrollTop que hace nuestra animacion, y termina peleando contra ella:
   medido en altaflorida, el scroll tardaba 639ms en ARRANCAR (contra 163ms
   sin smooth) y 1055ms en llegar (contra 574ms). Ese era el "piensa y recien
   despues arranca" y la sensacion de doble freno.
   Nosotros manejamos el desplazamiento por JS, asi que el suavizado del
   navegador sobra. Esta hoja se encola SOLO en paginas que usan el widget
   (get_style_depends), de modo que los anchors del resto del sitio no cambian. */
html {
	scroll-behavior: auto !important;
}

.oddino-vscroll-inner {
	position: relative;
	min-height: 100%;
}

.oddino-vscroll-inner .oddino-vscroll-dots {
	position: fixed;
	z-index: 100;
	opacity: 1;
	margin-top: -32px;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.oddino-vscroll-wrap .oddino-vscroll-nav-menu {
	opacity: 1;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.oddino-vscroll-inner .oddino-vscroll-dots,
.oddino-vscroll-wrap .oddino-vscroll-dots-hide {
	opacity: 0;
	visibility: hidden;
}

.oddino-vscroll-nav-dots-yes .oddino-vscroll-inner .oddino-vscroll-dots:not(.oddino-vscroll-dots-hide) {
	opacity: 1;
	visibility: visible;
}

.oddino-vscroll-dots.middle {
	top: 50%;
	margin-top: 0;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}

.oddino-vscroll-dots.top {
	top: 40px;
}

.oddino-vscroll-dots.bottom {
	bottom: 30px;
}

.oddino-vscroll-dots.right {
	right: 17px;
}

.oddino-vscroll-dots.left {
	left: 17px;
}

.oddino-vscroll-inner ul.oddino-vscroll-dots-list,
.oddino-vscroll-wrap .oddino-vscroll-nav-menu {
	margin: 0 !important;
	padding: 0;
	list-style: none;
}

.oddino-vscroll-inner ul.oddino-vscroll-dots-list li {
	width: 14px;
	height: 13px;
	margin: 7px;
	position: relative;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	overflow: visible;
}

.oddino-vscroll-inner .oddino-vscroll-dot-item .oddino-vscroll-nav-link {
	display: block;
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	cursor: pointer;
	text-decoration: none;
}

.oddino-vscroll-inner .oddino-vscroll-dot-item .oddino-vscroll-nav-link span {
	top: 2px;
	left: 2.5px;
	width: 8px;
	height: 8px;
	border: 1px solid #000;
	border-radius: 50%;
	position: absolute;
	z-index: 1;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.oddino-vscroll-inner .oddino-vscroll-dot-item.active .oddino-vscroll-nav-link span {
	-webkit-transform: scale(1.6);
	-ms-transform: scale(1.6);
	transform: scale(1.6);
}

.oddino-vscroll-inner .oddino-vscroll-dot-item .oddino-vscroll-tooltip {
	position: absolute;
	color: #fff;
	font-size: 14px;
	font-family: arial, helvetica, sans-serif;
	white-space: nowrap;
	max-width: 220px;
	padding-left: 0.4em;
	padding-right: 0.4em;
}

.oddino-vscroll-inner .oddino-vscroll-dots.right .oddino-vscroll-tooltip {
	right: 27px;
}

.oddino-vscroll-inner .oddino-vscroll-dots.right .oddino-vscroll-tooltip::after {
	position: absolute;
	top: 50%;
	content: "";
	left: calc(100% - 1px);
	width: 10px;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 6px solid;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}

.oddino-vscroll-inner .oddino-vscroll-dots.left .oddino-vscroll-tooltip {
	left: 27px;
}

.oddino-vscroll-inner .oddino-vscroll-dots.left .oddino-vscroll-tooltip::after {
	position: absolute;
	top: 50%;
	content: "";
	right: calc(100% - 1px);
	width: 10px;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-right: 6px solid;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}

/* Lines shape */
.oddino-vscroll-inner .oddino-vscroll-dots.lines .oddino-vscroll-dot-item {
	width: 4px;
	height: 30px;
}

.oddino-vscroll-inner .oddino-vscroll-dots.lines .oddino-vscroll-dot-item span {
	width: 100%;
	height: 100%;
	border-radius: 0;
}

.oddino-vscroll-inner .oddino-vscroll-dots.lines .oddino-vscroll-dot-item.active span {
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}

@media (max-width: 768px) {
	.oddino-vscroll-dots.right {
		right: 7px;
	}
	.oddino-vscroll-dots.left {
		left: 7px;
	}
}

/* Navigation Menu */
.oddino-vscroll-nav-menu {
	position: fixed;
	top: 20px;
	height: 40px;
	z-index: 100;
	padding: 0;
	margin: 0;
}

.oddino-vscroll-nav-menu.left {
	left: 0;
}

.oddino-vscroll-nav-menu.right {
	right: 0;
}

.oddino-vscroll-nav-menu .oddino-vscroll-nav-item {
	display: inline-block;
	margin: 10px;
	color: #000;
	background: rgba(255, 255, 255, 0.3);
}

.oddino-vscroll-nav-menu .oddino-vscroll-nav-item .oddino-vscroll-nav-link {
	padding: 9px 18px;
	display: block;
	cursor: pointer;
	color: #000;
}

.oddino-vscroll-nav-menu .oddino-vscroll-nav-item .oddino-vscroll-nav-link:hover {
	color: #000;
}

.oddino-vscroll-nav-menu .oddino-vscroll-nav-item .oddino-vscroll-nav-link:focus {
	outline: none;
}

/* Scroll Effects / Animations */
[data-hijacking=off] .oddino-vscroll-temp {
	height: 100vh;
}

[data-hijacking=off] .oddino-vscroll-temp > div {
	opacity: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	overflow: hidden;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

[data-hijacking=off] .oddino-vscroll-temp:first-of-type > div::before {
	display: none;
	position: absolute;
	width: 100%;
	top: 20px;
	z-index: 2;
}

[data-hijacking=off][data-animation=rotate] .oddino-vscroll-temp {
	position: relative;
	-webkit-perspective: 1800px;
	perspective: 1800px;
}

[data-hijacking=off][data-animation=rotate] .oddino-vscroll-temp > div {
	position: absolute;
	-webkit-transform-origin: center bottom;
	-ms-transform-origin: center bottom;
	transform-origin: center bottom;
}

[data-hijacking=off][data-animation=rotate] .oddino-vscroll-temp:last-of-type > div {
	opacity: 1 !important;
	-webkit-transform: translateY(0px) scale(1) rotateX(0deg) !important;
	transform: translateY(0px) scale(1) rotateX(0deg) !important;
}

[data-hijacking=off][data-animation=parallax] .oddino-vscroll-temp > div {
	position: fixed;
}

[data-hijacking=off][data-animation=scaleDown] .oddino-vscroll-temp > div {
	position: fixed;
}

[data-hijacking=off] .oddino-vscroll-parallax-last {
	-webkit-transform: translateY(0px) scale(1) !important;
	-ms-transform: translateY(0px) scale(1) !important;
	transform: translateY(0px) scale(1) !important;
}

[data-hijacking=off] .oddino-vscroll-parallax-position {
	position: unset !important;
}

/* Sections wrap for templates mode (default / no animation) */
.oddino-vscroll-sections-wrap:not([data-animation]) .oddino-vscroll-temp {
	height: 100vh;
}

/* RTL support */
[dir="rtl"] .oddino-vscroll-dots.right {
	right: auto;
	left: 17px;
}

[dir="rtl"] .oddino-vscroll-dots.left {
	left: auto;
	right: 17px;
}

[dir="rtl"] .oddino-vscroll-nav-menu.left {
	left: auto;
	right: 0;
}

[dir="rtl"] .oddino-vscroll-nav-menu.right {
	right: auto;
	left: 0;
}

/* =========================================================
   FIX iOS / DISPOSITIVOS TACTILES — corte de texto al fondo
   ---------------------------------------------------------
   En iOS Safari, 100vh = pantalla SIN la barra de URL (mas alto
   que lo visible). Como las secciones full-screen tienen el
   contenido pegado abajo (align-items:flex-end), el titulo cae
   en la franja que tapa la barra y se ve cortado.

   Solucion: en dispositivos TACTILES usamos 100svh (small viewport
   height = area realmente visible). Redefinimos la variable propia
   de Elementor --min-height, asi respetamos su mecanismo y no
   peleamos especificidad. Desktop NO se toca (la media query de
   puntero grueso no aplica a mouse).

   Protegido con @supports: navegadores sin svh mantienen el
   comportamiento anterior (no se rompe nada).
   ========================================================= */
@supports (height: 100svh) {
	@media (hover: none) and (pointer: coarse) {
		/* FIX QUIRURGICO: solo el contenedor de SECCION (.e-parent, el
		   top-level de Elementor que tiene "Min Height: 100VH"). Bajamos
		   su variable de 100vh a 100svh para que la seccion mida el alto
		   visible real (no el que tapa la barra de Safari).

		   IMPORTANTE: NO tocamos .e-child (columnas internas, ej. el boton
		   "VER MAPA" que mide 200px), ni el heading. Solo cambia el ALTO. */
		.oddino-vscroll-temp .e-parent {
			--min-height: 100svh !important;
		}

		/* FIX HUECO NEGRO EN MOBILE — el envoltorio de SECCION del fullpage.
		   Antes cada .oddino-vscroll-temp quedaba en height:100vh; en mobile
		   100vh incluye la franja de la barra del navegador, asi que la
		   seccion medaba MAS que la pantalla visible. Al aparecer/ocultarse
		   la barra durante el scroll el layout "saltaba" y dejaba expuesta
		   una banda del fondo (negro) antes de la siguiente seccion.
		   Con 100svh la seccion mide exactamente lo visible y el scroll
		   queda fluido, sin salto ni hueco. */
		.oddino-vscroll-sections-wrap:not([data-animation]) .oddino-vscroll-temp,
		[data-hijacking=off] .oddino-vscroll-temp,
		[data-hijacking=off] .oddino-vscroll-temp > div {
			height: 100svh !important;
		}
	}
}

/* RED DE SEGURIDAD DEL FONDO (mobile / tactiles) — las secciones a pantalla
   completa del fullpage tienen un background-color negro de respaldo y una
   foto encima. Si en algun breakpoint no se definio background-size, la foto
   no cubre y aparece el negro como banda vacia. Forzamos "cover" SOLO como
   fallback (sin !important): si el cliente definio un tamaño propio para una
   seccion puntual, su regla (mas especifica) sigue ganando. */
@media (hover: none) and (pointer: coarse) {
	.oddino-vscroll-temp .e-parent {
		background-size: cover;
		background-position: center center;
	}
}

/* El "trabar en cada bloque" en tactiles lo maneja el JS (snap suave al
   soltar, en fullpage-scroll.js). NO usamos CSS scroll-snap: el modo
   "mandatory" peleaba con el dedo al subir (bug conocido en mobile) y se
   sentia trabado. */
