/* Animaciones del sitio. Las clases las agrega Elementor desde Avanzado > Animación ENRED. */

:root {
	--enred-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--enred-ease-soft: cubic-bezier(0.22, 1, 0.36, 1);
	--enred-ease-hover: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--enred-reveal-distance: 28px;
	--enred-reveal-duration: 0.9s;
	--enred-stagger: 90ms;
}

/* Aparición al hacer scroll. Solo oculta si el JS arrancó (html.enred-motion). */
.enred-motion [class*="enred-reveal-"]:not(.enred-reveal-bar) {
	opacity: 0;
	transition:
		opacity var(--enred-reveal-duration) var(--enred-ease),
		transform var(--enred-reveal-duration) var(--enred-ease);
	transition-delay: calc(var(--enred-i, 0) * var(--enred-stagger));
}
.enred-motion .enred-reveal-up { transform: translate3d(0, var(--enred-reveal-distance), 0); }
.enred-motion .enred-reveal-left { transform: translate3d(calc(var(--enred-reveal-distance) * -1.4), 0, 0); }
.enred-motion .enred-reveal-right { transform: translate3d(calc(var(--enred-reveal-distance) * 1.4), 0, 0); }
.enred-motion .enred-reveal-zoom { transform: scale(0.96); }
.enred-motion [class*="enred-reveal-"].is-in:not(.enred-reveal-bar) { opacity: 1; transform: none; }

.enred-delay-1 { --enred-i: 1; } .enred-delay-2 { --enred-i: 2; } .enred-delay-3 { --enred-i: 3; } .enred-delay-4 { --enred-i: 4; }
.enred-delay-5 { --enred-i: 5; } .enred-delay-6 { --enred-i: 6; } .enred-delay-7 { --enred-i: 7; } .enred-delay-8 { --enred-i: 8; }

/* Barra de progreso */
.enred-reveal-bar { position: relative; overflow: hidden; }
.enred-reveal-bar::after {
	content: "";
	position: absolute;
	inset: 0 50% 0 0;
	background: #333;
	transform-origin: left;
	transition: transform 1.6s var(--enred-ease) 0.2s;
}
.enred-motion .enred-reveal-bar::after { transform: scaleX(0); }
.enred-motion .enred-reveal-bar.is-in::after { transform: scaleX(1); }

/* Header fijo */
.enred-sticky-yes {
	position: sticky !important;
	top: var(--wp-admin--admin-bar--height, 0px);
	transition: box-shadow 0.4s var(--enred-ease-soft), background-color 0.4s var(--enred-ease-soft);
}
.enred-sticky-yes.is-scrolled {
	background-color: rgba(255, 255, 255, 0.86) !important;
	-webkit-backdrop-filter: saturate(1.6) blur(14px);
	backdrop-filter: saturate(1.6) blur(14px);
	box-shadow: 0 12px 32px -18px rgba(15, 49, 110, 0.35);
}
.enred-sticky-yes .elementor-icon-list-text { position: relative; }
.enred-sticky-yes .elementor-icon-list-text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--enred-ease);
}
.enred-sticky-yes .elementor-icon-list-item:hover .elementor-icon-list-text::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Zoom de entrada del fondo */
.enred-bgdrift-yes { overflow: hidden; isolation: isolate; }
.enred-bgdrift-yes::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: inherit;
	background-size: cover;
	background-position: inherit;
	animation: enred-bg-drift 22s var(--enred-ease-soft) both;
}
@keyframes enred-bg-drift {
	from { transform: scale(1.06); }
	to { transform: scale(1); }
}

/* Hover */
[class*="enred-hover-"] {
	--enred-hover-duration: 1.8s;
	--enred-zoom: 1.03;
	--enred-lift: -4px;
}

[class*="enred-hover-"].enred-zoom-soft { --enred-zoom: 1.015; }
[class*="enred-hover-"].enred-zoom-strong { --enred-zoom: 1.06; }
[class*="enred-hover-"].enred-lift-none { --enred-lift: 0px; }
[class*="enred-hover-"].enred-lift-high { --enred-lift: -8px; }
[class*="enred-hover-"].enred-speed-fast { --enred-hover-duration: 1s; }
[class*="enred-hover-"].enred-speed-slow { --enred-hover-duration: 2.6s; }

/* Tarjeta con zoom del fondo */
.enred-hover-card,
.enred-hover-zoom { isolation: isolate; overflow: hidden; }
.enred-hover-card {
	transition:
		transform calc(var(--enred-hover-duration) * 0.45) var(--enred-ease-hover),
		box-shadow calc(var(--enred-hover-duration) * 0.45) var(--enred-ease-hover);
}
.enred-hover-card::after,
.enred-hover-zoom::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: inherit;
	background-size: cover;
	background-position: inherit;
	transition: transform var(--enred-hover-duration) var(--enred-ease-hover);
}
.enred-hover-card:hover { transform: translateY(var(--enred-lift)); box-shadow: 0 28px 50px -30px rgba(10, 22, 44, 0.55); }
.enred-hover-card:hover::after,
.enred-hover-zoom:hover::after { transform: scale(var(--enred-zoom)); }

.enred-hover-card .card-link .elementor-heading-title {
	display: inline-block;
	transition: transform 0.6s var(--enred-ease-hover), color 0.4s ease;
}
.enred-hover-card:hover .card-link .elementor-heading-title { transform: translateX(4px); color: #74d4ff; }

/* Imagen */
/* Elementor 4 ya no envuelve la imagen: el recorte va en el widget, con el radio de Avanzado > Borde. */
.enred-hover-image {
	--enred-zoom: 1.035;
	--enred-hover-duration: 1.1s;
	--enred-ease-image: cubic-bezier(0.33, 1, 0.68, 1);
	position: relative;
	isolation: isolate;
	box-shadow: 0 0 0 0 rgba(15, 49, 110, 0);
	transition: box-shadow var(--enred-hover-duration) var(--enred-ease-image);
}
.enred-hover-image,
.enred-hover-image .elementor-widget-container { overflow: hidden; }
/* .elementor-element suma especificidad para que otro CSS de la página no pise la transición. */
.elementor-element.enred-hover-image img {
	display: block;
	transition:
		transform var(--enred-hover-duration) var(--enred-ease-image),
		filter var(--enred-hover-duration) var(--enred-ease-image),
		opacity 0.5s ease;
}
/* Brillo diagonal que cruza la foto una vez */
.enred-hover-image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.16) 50%, transparent 65%);
	transform: translateX(-110%);
}
.enred-hover-image:hover { box-shadow: 0 30px 60px -32px rgba(15, 49, 110, 0.55); }
.enred-hover-image:hover img { transform: scale(var(--enred-zoom)); filter: brightness(1.05) saturate(1.06); }
.enred-hover-image:hover::after {
	transform: translateX(110%);
	transition: transform 1.2s var(--enred-ease-image);
}

/* Elevar */
.enred-hover-lift {
	transition:
		transform calc(var(--enred-hover-duration) * 0.45) var(--enred-ease-hover),
		box-shadow calc(var(--enred-hover-duration) * 0.45) var(--enred-ease-hover),
		background-color 0.6s ease;
}
.enred-hover-lift:hover { transform: translateY(var(--enred-lift)); box-shadow: 0 26px 48px -28px rgba(4, 29, 106, 0.55); }

/* Logos */
.elementor-element.enred-hover-logo img {
	opacity: 0.55;
	filter: grayscale(1);
	transition:
		opacity 0.6s ease,
		filter 0.6s ease,
		transform calc(var(--enred-hover-duration) * 0.5) var(--enred-ease-hover);
}
.elementor-element.enred-hover-logo:hover img { opacity: 1; filter: grayscale(0); transform: scale(var(--enred-zoom)); }

/* Float de Elementor, más suave */
.elementor-button.elementor-animation-float {
	transition:
		transform 0.5s var(--enred-ease-hover),
		box-shadow 0.5s var(--enred-ease-hover),
		background-color 0.4s ease,
		color 0.4s ease,
		opacity 0.5s ease;
}
.elementor-button.elementor-animation-float:hover,
.elementor-button.elementor-animation-float:focus,
.elementor-button.elementor-animation-float:active { transform: translateY(-3px); }

/* Carrusel */
.enred-carousel-yes {
	flex-wrap: nowrap !important;
	overflow: hidden;
	touch-action: pan-y;
}
.enred-carousel-yes > .elementor-element {
	flex-shrink: 0;
	translate: var(--enred-carousel-x, 0px) 0;
}
/* Mientras se desliza se suma `translate` a las transiciones de aparición y hover de las tarjetas. */
.enred-carousel-yes.is-moving > .elementor-element {
	transition:
		translate 0.9s cubic-bezier(0.65, 0, 0.35, 1),
		transform 0.8s var(--enred-ease-hover),
		box-shadow 0.8s var(--enred-ease-hover),
		opacity 0.9s var(--enred-ease);
	transition-delay: 0s;
}
.enred-carousel-prev,
.enred-carousel-next { cursor: pointer; transition: opacity 0.3s ease; }
.enred-carousel-prev:hover,
.enred-carousel-next:hover { opacity: 0.6; }
.enred-carousel-progress { position: relative; overflow: hidden; background: #e3e6ed !important; }
.enred-carousel-progress::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--enred-progress-size, 50%);
	background: #333;
	transform: translateX(var(--enred-progress-x, 0%));
	transition: transform 0.7s var(--enred-ease-hover);
}

/* Movimiento reducido */
@media (prefers-reduced-motion: reduce) {
	.enred-motion [class*="enred-reveal-"] { opacity: 1 !important; transform: none !important; transition: none !important; }
	.enred-motion .enred-reveal-bar::after { transform: scaleX(1); transition: none; }
	.enred-bgdrift-yes::after { animation: none; }
	[class*="enred-hover-"],
	[class*="enred-hover-"]::after,
	[class*="enred-hover-"] img { transition: none !important; }
}
