/* 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). */
/* Lo que entra desde los costados no debe abrir scroll horizontal mientras está fuera de lugar. */
html.enred-motion,
.enred-motion body { overflow-x: clip; }
.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); }

/* El encabezado y el pie los pone Header Footer Builder; los de Hello se ocultan para que no salgan dobles. */
body:has(#tahefobu-header) #site-header,
body:has(.turbo-footer-template) #site-footer { display: none !important; }

/* Menú principal (widget de navegación de Turbo con la clase enred-nav).
   El elemento "Solicitar información" del menú lleva la clase enred-menu-cta: en escritorio se oculta porque ya está el botón. */
.enred-nav .tahefobu-nav-menu .enred-menu-cta { display: none !important; }
.enred-nav .tahefobu-sub-menu {
	min-width: 240px;
	padding: 8px 0;
	border-radius: 12px;
	box-shadow: 0 18px 40px -18px rgba(15, 49, 110, 0.35);
	overflow: hidden;
}

/* Escritorio: línea azul que crece desde el centro al pasar el cursor y queda fija en la página actual
   (también en Servicios cuando se está en una de sus landings). */
@media (min-width: 1025px) {
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item { transition: color 0.25s ease; }
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item::after {
		content: "";
		position: absolute;
		top: auto;
		left: 17px;
		right: 17px;
		bottom: 2px;
		width: auto;
		height: 2px;
		border-radius: 2px;
		background: #4496d1;
		opacity: 1;
		transform: scaleX(0);
		transform-origin: center;
		transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
	}
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item:hover,
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item:focus-visible,
	.enred-nav .tahefobu-nav-menu > li.current-menu-item > a.tahefobu-menu-item,
	.enred-nav .tahefobu-nav-menu > li.current-menu-ancestor > a.tahefobu-menu-item,
	.enred-nav .tahefobu-nav-menu > li.current-page-ancestor > a.tahefobu-menu-item { color: #4496d1 !important; }
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item:hover::after,
	.enred-nav .tahefobu-nav-menu > li > a.tahefobu-menu-item:focus-visible::after,
	.enred-nav .tahefobu-nav-menu > li.current-menu-item > a.tahefobu-menu-item::after,
	.enred-nav .tahefobu-nav-menu > li.current-menu-ancestor > a.tahefobu-menu-item::after,
	.enred-nav .tahefobu-nav-menu > li.current-page-ancestor > a.tahefobu-menu-item::after { transform: scaleX(1); }
	.enred-nav .tahefobu-nav-menu > li.menu-item-has-children > a.tahefobu-menu-item::after { right: 30px; }
}

@media (max-width: 1024px) {
	/* En tablet y móvil el botón del encabezado pasa al final del panel. */
	#encabezado .elementor-widget-button { display: none; }

	.enred-nav .tahefobu-mobile-toggle { padding: 10px 4px; cursor: pointer; }
	.enred-nav .tahefobu-mobile-nav-menu {
		position: fixed !important;
		top: var(--enred-header-h, 64px) !important;
		left: 0 !important;
		width: 100vw !important;
		height: calc(100dvh - var(--enred-header-h, 64px));
		overflow-y: auto;
		margin: 0 !important;
		padding: 8px 24px 32px !important;
		background: #fff !important;
		border-top: 1px solid #e9eaee;
		box-shadow: 0 30px 40px -30px rgba(15, 49, 110, 0.35);
		z-index: 999;
	}
	.enred-nav .tahefobu-mobile-nav-menu > li > a {
		padding: 18px 0 !important;
		font: 600 20px/28px "Poppins", sans-serif !important;
		color: #173964 !important;
		background: transparent !important;
	}
	.enred-nav .tahefobu-mobile-nav-menu > li { border-bottom: 1px solid #e9eaee; }
	.enred-nav .tahefobu-mobile-nav-menu li a.tahefobu-active-menu-item,
	.enred-nav .tahefobu-mobile-nav-menu > li.current-menu-item > a { color: #4496d1 !important; }
	.enred-nav .tahefobu-mobile-sub-menu { padding: 0 0 14px !important; background: transparent !important; }
	.enred-nav .tahefobu-mobile-sub-menu a {
		padding: 10px 0 10px 16px !important;
		border-left: 2px solid #e3e6ed;
		font: 500 16px/24px "Poppins", sans-serif !important;
		color: #506175 !important;
		background: transparent !important;
	}
	.enred-nav .tahefobu-mobile-nav-menu > li.enred-menu-cta { border-bottom: 0; padding-top: 24px; }
	.enred-nav .tahefobu-mobile-nav-menu > li.enred-menu-cta > a {
		display: block;
		padding: 15px 24px !important;
		border-radius: 100px;
		background: #173964 !important;
		color: #fff !important;
		font-size: 17px !important;
		text-align: center;
	}
	/* Al abrir, los elementos entran uno tras otro. */
	.tahefobu-mobile-toggle-wrap:has(.tahefobu-mobile-toggle-open) + .tahefobu-mobile-nav-menu > li {
		animation: enred-menu-in 0.5s var(--enred-ease) both;
	}
	.tahefobu-mobile-nav-menu > li:nth-child(2) { animation-delay: 0.04s !important; }
	.tahefobu-mobile-nav-menu > li:nth-child(3) { animation-delay: 0.08s !important; }
	.tahefobu-mobile-nav-menu > li:nth-child(4) { animation-delay: 0.12s !important; }
	.tahefobu-mobile-nav-menu > li:nth-child(5) { animation-delay: 0.16s !important; }
	.tahefobu-mobile-nav-menu > li:nth-child(n+6) { animation-delay: 0.2s !important; }

	/* Sin scroll de fondo mientras el menú está abierto. */
	html:has(.enred-nav .tahefobu-mobile-toggle-open) { overflow: hidden; }
}

@keyframes enred-menu-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Los enlaces a #contacto y otras secciones no quedan tapados por el encabezado fijo. */
.elementor [id] { scroll-margin-top: calc(var(--enred-header-h, 77px) + 12px); }

/* Cifras centradas: las leyendas largas también se centran cuando se parten en dos líneas. */
.elementor-widget-counter .elementor-counter-title { text-align: center; }

/* 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);
}

/* Acordeón con líneas horizontales. En Avanzado > Clases CSS: enred-lines (fondo oscuro) o enred-lines enred-lines-dark (fondo claro). */
.enred-lines .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important; }
.enred-lines .elementor-accordion-item:first-child { border-top: 1px solid rgba(255, 255, 255, 0.16) !important; }
/* Sin línea superior cuando el acordeón va justo debajo de otra línea. En tablet y móvil hay un título en medio, así que ahí sí va. */
@media (min-width: 1025px) {
	.enred-lines-notop .elementor-accordion-item:first-child { border-top: 0 !important; }
}
.enred-lines-dark .elementor-accordion-item,
.enred-lines-dark .elementor-accordion-item:first-child { border-color: #dde3ea !important; }
.enred-lines .elementor-tab-title { display: flex; align-items: center; }
.enred-lines .elementor-tab-title .elementor-accordion-title { flex: 1; display: flex; align-items: baseline; }
.enred-lines .elementor-tab-title .elementor-accordion-icon { order: 2; float: none; }
.enred-lines .enred-num { display: inline-block; flex: 0 0 40px; width: 40px; font-size: 11px; font-weight: 500; letter-spacing: 1px; color: #74d4ff; }
.enred-lines-dark .enred-num { color: #4496d1; }
.enred-lines .elementor-tab-content { border: 0 !important; }

/* Formularios de Contact Form 7 con la clase enred-form: campos con solo línea inferior. */
.enred-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 24px;
	font-family: "Figtree", sans-serif;
}
.enred-form > p { display: contents; }
.enred-form br { display: none; }
.enred-form .enred-full,
.enred-form .enred-submit { grid-column: 1 / -1; }
.enred-form .enred-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	line-height: 18px;
	color: rgba(255, 255, 255, 0.85);
}
.enred-form input:not([type="submit"]),
.enred-form select,
.enred-form textarea {
	width: 100%;
	padding: 10px 2px;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 0;
	background: transparent;
	color: #fff;
	font: 400 15px/22px "Figtree", sans-serif;
	outline: none;
	transition: border-color 0.3s ease;
}
.enred-form textarea { height: 96px; resize: vertical; }
.enred-form select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 24px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 4px center;
	cursor: pointer;
}
.enred-form select option { color: #191f24; }
.enred-form input:focus,
.enred-form select:focus,
.enred-form textarea:focus { border-bottom-color: #74d4ff; }
.enred-form .enred-submit { display: flex; justify-content: center; margin-top: 8px; }
.enred-form input[type="submit"] {
	padding: 14px 28px;
	border: 0;
	border-radius: 100px;
	background: #fff;
	color: #133a65;
	font: 600 16px/24px "Poppins", sans-serif;
	cursor: pointer;
	box-shadow: 0 10px 30px rgba(4, 29, 106, 0.3);
	transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease;
}
.enred-form input[type="submit"]:hover { transform: translateY(-3px); }
.enred-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 12px; color: #ffb4b4; }
.enred-form .wpcf7-spinner { position: absolute; }
.wpcf7 form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 10px 14px;
	border-radius: 10px;
	color: #fff;
	font: 400 14px/20px "Figtree", sans-serif;
}
@media (max-width: 767px) {
	.enred-form { grid-template-columns: 1fr; gap: 22px; }
}

/* Fila de logos: en escritorio fija, en móvil se desplaza sola. Las copias (enred-dup) solo se ven en móvil. */
.enred-marquee .enred-dup { display: none !important; }
@media (max-width: 767px) {
	.enred-marquee { overflow: hidden; }
	.enred-marquee .enred-marquee-track {
		flex-wrap: nowrap !important;
		width: max-content !important;
		max-width: none !important;
		animation: enred-marquee 28s linear infinite;
	}
	.enred-marquee .enred-dup { display: flex !important; }
}
@keyframes enred-marquee { to { transform: translateX(-50%); } }

/* Barra del carrusel sobre fondo oscuro */
.enred-carousel-progress.enred-progress-light { background: rgba(255, 255, 255, 0.22) !important; }
.enred-progress-light::after { background: #fff; }

/* 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,
	.enred-marquee .enred-marquee-track { animation: none; }
	[class*="enred-hover-"],
	[class*="enred-hover-"]::after,
	[class*="enred-hover-"] img { transition: none !important; }
}

/* Íconos de contacto del pie en contorno, como en el diseño. Font Awesome gratis no los trae, así que el SVG de Elementor se tapa y se dibuja con una máscara. */
.turbo-footer-template .elementor-icon-list-icon svg.e-far-envelope,
.turbo-footer-template .elementor-icon-list-icon svg.e-fas-phone-alt,
.turbo-footer-template .elementor-icon-list-icon svg.e-fas-map-marker-alt {
	background-color: #4496d1;
	-webkit-mask: var(--enred-icono) center / contain no-repeat;
	mask: var(--enred-icono) center / contain no-repeat;
}
.turbo-footer-template .elementor-icon-list-icon svg.e-far-envelope > *,
.turbo-footer-template .elementor-icon-list-icon svg.e-fas-phone-alt > *,
.turbo-footer-template .elementor-icon-list-icon svg.e-fas-map-marker-alt > * { display: none; }
.turbo-footer-template svg.e-far-envelope { --enred-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
.turbo-footer-template svg.e-fas-phone-alt { --enred-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.turbo-footer-template svg.e-fas-map-marker-alt { --enred-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }

/* Tablet: las cifras de los contadores no caben a tamaño de escritorio en cinco columnas. */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-widget-counter .elementor-counter-number-wrapper { font-size: 22px !important; line-height: 1.25 !important; flex-wrap: nowrap; justify-content: center; white-space: nowrap; }
	.elementor-widget-counter .elementor-counter-number-prefix,
	.elementor-widget-counter .elementor-counter-number-suffix { flex-grow: 0 !important; }
	.elementor-widget-counter .elementor-counter-title { font-size: 12px !important; line-height: 1.35 !important; }
	.enred-stats-center .elementor-counter-number-wrapper { font-size: 16px !important; }
}

/* Botón para volver arriba: círculo azul de la marca con un anillo que avanza con la lectura.
   En tablet y celular es más chico y el JS lo muestra solo al deslizar hacia arriba. */
.enred-arriba {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 90;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #173964;
	color: #ffffff;
	cursor: pointer;
	box-shadow: 0 12px 28px -10px rgba(15, 43, 82, 0.55);
	opacity: 0;
	visibility: hidden;
	transform: translateY(16px) scale(0.9);
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0.3s, background-color 0.25s ease;
	-webkit-tap-highlight-color: transparent;
}
.enred-arriba.is-visible { opacity: 1; visibility: visible; transform: none; }
button.enred-arriba:hover,
button.enred-arriba:focus { background: #173964; color: #ffffff; }
html:has(.tahefobu-mobile-toggle-open) .enred-arriba { opacity: 0; visibility: hidden; }
.enred-arriba:focus-visible { outline: 2px solid #74d4ff; outline-offset: 3px; }
.enred-arriba svg { grid-area: 1 / 1; }
.enred-arriba__anillo { width: 100%; height: 100%; transform: rotate(-90deg); }
.enred-arriba__anillo circle { fill: none; stroke: #74d4ff; stroke-width: 2.5; stroke-linecap: round; transition: stroke-dashoffset 0.15s linear; }
.enred-arriba__flecha { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.25s ease; }
@media (min-width: 1025px) {
	.enred-arriba { right: 32px; bottom: 32px; width: 52px; height: 52px; }
	.enred-arriba__flecha { width: 20px; height: 20px; }
	button.enred-arriba:hover,
	button.enred-arriba:focus-visible { background: #4496d1; }
	.enred-arriba:hover .enred-arriba__flecha { transform: translateY(-3px); }
}

/* Barra de contacto: solo tablet y celular. Entra desde abajo al bajar un poco y se esconde junto al formulario. */
.enred-barra { display: none; }
@media (max-width: 1024px) {
	.enred-barra {
		position: fixed;
		left: 12px;
		right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom));
		z-index: 95;
		display: grid;
		grid-template-columns: 1fr 1.6fr;
		gap: 8px;
		padding: 8px;
		border-radius: 18px;
		background: rgba(15, 43, 82, 0.96);
		box-shadow: 0 18px 40px -14px rgba(10, 30, 70, 0.6);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		transform: translateY(140%);
		transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
	}
	.enred-barra.is-visible { transform: none; }
	html:has(.tahefobu-mobile-toggle-open) .enred-barra { transform: translateY(140%); }
	.enred-barra__llamar,
	.enred-barra__solicitar {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 48px;
		padding: 0 14px;
		border: 0;
		border-radius: 12px;
		font-family: "Poppins", sans-serif;
		font-size: 14px;
		font-weight: 600;
		line-height: 1;
		text-decoration: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}
	.enred-barra__llamar { background: rgba(255, 255, 255, 0.1); color: #ffffff; }
	/* El tema pinta de rojo los botones al pasar o tocar; acá se mantienen los colores de la marca. */
	.enred-barra .enred-barra__llamar:hover,
	.enred-barra .enred-barra__llamar:focus { background: rgba(255, 255, 255, 0.16); color: #ffffff; }
	.enred-barra .enred-barra__llamar[aria-expanded="true"] { background: rgba(116, 212, 255, 0.2); color: #ffffff; }
	.enred-barra .enred-barra__solicitar:hover,
	.enred-barra .enred-barra__solicitar:focus { background: #eef4fb; color: #173964; }
	.enred-barra .enred-barra__zona:hover,
	.enred-barra .enred-barra__zona:focus { background: rgba(255, 255, 255, 0.14); color: #ffffff; }
	.enred-barra__solicitar { background: #ffffff; color: #173964; }
	.enred-barra svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
	.enred-barra__llamar svg { stroke: #74d4ff; }
	.enred-barra__zonas {
		grid-column: 1 / -1;
		display: grid;
		gap: 6px;
		padding-bottom: 4px;
	}
	.enred-barra__zonas[hidden] { display: none; }
	.enred-barra__zona {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 12px 14px;
		border-radius: 12px;
		background: rgba(255, 255, 255, 0.08);
		color: #ffffff;
		font-family: "Figtree", sans-serif;
		font-size: 14px;
		text-decoration: none;
	}
	.enred-barra__zona strong { font-family: "Poppins", sans-serif; font-weight: 600; color: #74d4ff; }
	/* Espacio al final de la página para que la barra no tape el pie, y el botón de subir encima de la barra. */
	html.enred-con-barra body { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
	html.enred-barra-visible .enred-arriba { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
