/*
 * Ellemental SAS — paleta corporativa sobre Saasking (se carga después del tema).
 * Marca #6BFF51 · segundo verde #14C38E · fondo #0A0F0B · superficies #111813 / #172019
 * bordes #233027 · bordes de campos #5B6B60 · títulos #F3F7F3 · texto #C8D2CA · atenuado #8E9C92
 * Botones en lima o degradado lima→verde, siempre con texto #0A0F0B.
 */

:root {
	--ell-marca: #6BFF51;
	--ell-verde-2: #14C38E;
	--ell-fondo: #0A0F0B;
	--ell-sup-1: #111813;
	--ell-sup-2: #172019;
	--ell-borde: #233027;
	--ell-borde-campo: #5B6B60;
	--ell-titulo: #F3F7F3;
	--ell-texto: #C8D2CA;
	--ell-atenuado: #8E9C92;
	--ell-grad: linear-gradient(92.62deg, #6BFF51 0%, #14C38E 100%);
	--ell-brillo-1: rgba(107, 255, 81, .35);
	--ell-brillo-2: rgba(20, 195, 142, .28);
	/* Tinte CSS de las imágenes moradas/naranjas de la demo (sin tocar píxeles en el servidor):
	   gris → sepia (tono ~38°) → giro al tono de la marca (#6BFF51 ≈ 109°) o del segundo verde (#14C38E ≈ 162°). */
	--ell-tinte-marca: grayscale(1) sepia(1) saturate(5) hue-rotate(70deg) brightness(1.05);
	--ell-tinte-verde: grayscale(1) sepia(1) saturate(4) hue-rotate(123deg);

	/* Variables de Saasking: morado → marca, naranja → segundo verde, fondos con tinte morado → neutros */
	--theme-color: #6BFF51;
	--sk-clr-pr-1: #6BFF51;
	--sk-clr-sd-1: #14C38E;
	--sk-clr-sd-4: #14C38E;
	--sk-clr-sd-5: #14C38E;
	--sk-clr-pr-7: #6BFF51;
	--sk-clr-gd-1: linear-gradient(92.62deg, #6BFF51 0%, #14C38E 100%);
	--sk-clr-gd-7: linear-gradient(90deg, #6BFF51 0%, #14C38E 100%);
	--sk-clr-gd-8: linear-gradient(92.62deg, #6BFF51 0%, #14C38E 100%);
	--sk-clr-black-1: #0A0F0B;
	--sk-clr-black-2: #111813;
	--sk-clr-black-6: #F3F7F3;
	--sk-clr-black-7: #C8D2CA;
	--sk-clr-back-2: #111813;
}

html,
body {
	background-color: var(--ell-fondo);
}
body {
	color: var(--ell-texto);
}
::selection {
	background: var(--ell-marca);
	color: var(--ell-fondo);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--ell-marca);
	outline-offset: 2px;
}

/* ---------- Tipografía ---------- */
.sk-h-1,
.sk-sec-title-1,
.sk-subtitle-1-text,
.sk-hero-1-content .hero-title,
.sk-h-7 {
	color: var(--ell-titulo);
}
.sk-p-1,
.sk-p-7,
.sk-hero-1-content .hero-disc {
	color: var(--ell-texto);
}
.sk-subtitle-1 {
	border-color: var(--ell-borde);
}
.sk-subtitle-1::after {
	background: var(--ell-fondo);
}
.sk-subtitle-1::before {
	background: linear-gradient(90deg, rgba(107, 255, 81, 0) 0%, var(--ell-marca) 50%, rgba(107, 255, 81, 0) 100%);
}
.sk-subtitle-1-text .has-clr {
	background: var(--ell-marca);
	color: var(--ell-fondo);
}

/* ---------- Botones ---------- */
.sk-pr-btn-2,
.sk-pr-btn-2:hover,
.sk-pr-btn-2 .text,
.sk-pr-btn-2 .text::before,
.sk-pr-btn-2 .text::after {
	color: var(--ell-fondo);
}
.sk-pr-btn-2 {
	background: var(--ell-grad);
	box-shadow: inset 0 0 8px rgba(255, 255, 255, .45);
}
.sk-pr-btn-2 .bg-clr::after {
	background: var(--ell-grad);
}
.sk-pr-btn-2 .bg-clr::before {
	background: var(--ell-verde-2);
}
.sk-pr-btn-1 {
	color: var(--ell-titulo);
}
.sk-pr-btn-1::after {
	background: linear-gradient(to right, var(--ell-sup-2) 0%, rgba(23, 32, 25, 0) 54%, var(--ell-sup-2) 100%);
}
.sk-pr-btn-1 .icon {
	color: var(--ell-marca);
}
.sk-pr-btn-1:hover {
	background: var(--ell-marca);
}
.sk-pr-btn-1:hover,
.sk-pr-btn-1:hover .text,
.sk-pr-btn-1:hover .text::before,
.sk-pr-btn-1:hover .text::after,
.sk-pr-btn-1:hover .icon {
	color: var(--ell-fondo);
}
.sk-pr-btn-13,
.sk-pr-btn-13:hover,
.sk-pr-btn-13 .text,
.sk-pr-btn-13 .text::before,
.sk-pr-btn-13 .text::after {
	color: var(--ell-fondo);
}
.sk-pr-btn-13::after,
.sk-pr-btn-13::before,
.sk-pr-btn-13:is(.has-v2)::before {
	background: var(--ell-grad);
}

/* Botón propio (formulario, WhatsApp, video) */
.ell-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 26px;
	border: 0;
	border-radius: 999px;
	background: var(--ell-grad);
	color: var(--ell-fondo) !important;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: filter .2s ease, transform .2s ease;
}
.ell-btn:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
	color: var(--ell-fondo) !important;
}
.ell-btn-wa {
	margin-top: 6px;
}

/* ---------- Cabecera y menú ---------- */
.sk-header-1-area::after {
	background: var(--ell-brillo-2);
}
.sk-header-1-logo img,
.tx-logo img,
img.tx-logo {
	height: 48px;
	width: auto;
	max-width: none;
}
.sk-header-1-menu {
	background: rgba(17, 24, 19, .72);
	border-color: var(--ell-borde);
	box-shadow: inset -4px -1px 8px rgba(107, 255, 81, .14);
}
/* La luz de ida y vuelta del tema (skHeader1Line) se reemplaza por el SVG .ell-menu-luz (ver más abajo). */
.sk-header-1-menu::after,
.sk-header-1-menu::before {
	content: none;
	animation: none;
}
.sk-header-1-action-link .sk-pr-btn-2,
.sk-header-1-action-link .sk-pr-btn-1 {
	background: var(--ell-marca);
}
.sk-header-1-action-link .sk-pr-btn-1::after {
	/* mismo reflejo lateral del tema (antes azul oscuro), en el segundo verde */
	background: linear-gradient(to right, #14C38E 0%, rgba(107, 255, 81, 0) 54%, #14C38E 100%);
}
.sk-header-1-action-link .sk-pr-btn-1,
.sk-header-1-action-link .sk-pr-btn-1 .text,
.sk-header-1-action-link .sk-pr-btn-1 .text::before,
.sk-header-1-action-link .sk-pr-btn-1 .text::after {
	color: var(--ell-fondo);
}
.sk-header-1-action-link .sk-pr-btn-1:hover {
	background: var(--ell-verde-2);
}
.sk-main-navigation .navbar-nav li a {
	color: var(--ell-titulo);
}
.sk-main-navigation .navbar-nav li:hover > a,
.sk-main-navigation .navbar-nav li.current-menu-item > a,
.sk-main-navigation .navbar-nav li a.active {
	color: var(--ell-marca);
}
.sk-main-navigation .navbar-nav li .dropdown-menu {
	background: var(--ell-fondo);
	border-color: var(--ell-borde);
}
.sk-offcanvas-btn-1 {
	background: var(--ell-marca);
	color: var(--ell-fondo);
	box-shadow: inset 0 0 8px rgba(255, 255, 255, .45);
}

/* Menú móvil (offcanvas) */
.wa-offcanvas-area {
	background: var(--ell-fondo);
	border-left: 1px solid var(--ell-borde);
}
.wa-offcanvas-close span {
	background: var(--ell-titulo);
}
.mobile-main-navigation ul li a,
.mobile-main-navigation ul li .dropdown-btn {
	color: var(--ell-titulo);
}
.mobile-main-navigation ul li:not(:last-child) {
	border-bottom-color: var(--ell-borde);
}
.mobile-main-navigation ul li:hover > a,
.mobile-main-navigation ul li:hover > .dropdown-btn {
	color: var(--ell-marca);
}
.wa-offcanvas-top-logo img {
	height: 56px;
	width: auto;
}

/* ---------- Hero ---------- */
/* Cuadrícula (h1-bg-line), ruido (h1-bg-noise-*) y puntos blancos: neutros, quedan como en la demo.
   Formas y brillos morados: tinte CSS. El movimiento (parallax, latido, puntos que suben, brillo con scroll) es del tema. */
.sk-hero-1-bg-shape-1 img,
.sk-hero-1-bottom-glow-1 img {
	filter: var(--ell-tinte-marca);
}
.sk-hero-1-bg-shape-2 img,
.sk-hero-1-bottom-glow-2 img {
	filter: var(--ell-tinte-verde);
}
/* El contenedor del tablero queda sin el marco (era el fondo de la captura h1-db) y aloja video + tarjetas. */
.sk-hero-1-db.ell-hero-video {
	display: block;
	padding: 0;
	border-radius: 0;
	background: none !important;
	box-shadow: none;
}
.sk-hero-1-db-img.ell-hero-stage {
	max-width: 990px;
	display: grid;
	grid-template-columns: minmax(0, 230px) auto minmax(0, 230px);
	justify-content: center;
	align-items: center;
	gap: 44px;
}
.ell-hero-cards {
	display: grid;
	gap: 22px;
	align-content: center;
}
/* Escalonado simétrico: la tarjeta del medio sobresale hacia afuera en cada lado. */
.ell-hero-cards-izq .ell-hero-card:nth-child(2) { margin-right: 34px; margin-left: -34px; }
.ell-hero-cards-der .ell-hero-card:nth-child(2) { margin-left: 34px; margin-right: -34px; }
.sk-hero-1-db-img-single-border.ell-hero-card {
	border: 1px solid rgba(107, 255, 81, .5);
	border-radius: 14px;
	box-shadow: 0 0 22px rgba(107, 255, 81, .22), 0 0 0 4px rgba(10, 15, 11, .6);
	background: var(--ell-sup-1);
}
.ell-hero-card .sk-hero-1-db-img-single img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 13px;
}
.ell-hero-centro {
	position: relative;
	z-index: 1;
}
@media (max-width: 991px) {
	.sk-hero-1-db-img.ell-hero-stage {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
		max-width: 560px;
	}
	.ell-hero-centro { grid-column: 1 / -1; order: -1; margin-bottom: 8px; }
	.ell-hero-cards { display: contents; }
	.ell-hero-cards-izq .ell-hero-card:nth-child(2),
	.ell-hero-cards-der .ell-hero-card:nth-child(2) { margin: 0; }
}
/* Brillo grande del hero (.sk-hero-1-bottom-glow-1: imagen h1-glow-img.webp, top -62 % del bloque del video).
   Hasta 991 px el bloque del video es alto (tarjetas debajo) y el brillo subía hasta el párrafo y los botones.
   Aquí arranca en el borde superior del bloque (detrás del celular, nunca más arriba) y es un degradado
   solo con los verdes de la paleta, sin el centro blanco de la imagen. Desde 992 px queda como el tema. */
@media (max-width: 991px) {
	.sk-hero-1-bottom-glow-1 {
		top: 0;
		left: 50%;
		width: min(80vw, 560px);
		aspect-ratio: 1 / 1;
		transform: translateX(-50%);
		z-index: -2;
		pointer-events: none;
		opacity: .45;
		animation: ell-hero-brillo-movil 4s ease-in-out infinite;
	}
	.sk-hero-1-bottom-glow-1 img { display: none; }
	.sk-hero-1-bottom-glow-1::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		border-radius: 50%;
		background: radial-gradient(closest-side, rgba(107, 255, 81, .85) 0%, rgba(20, 195, 142, .5) 45%, rgba(20, 195, 142, 0) 100%);
	}
}
@keyframes ell-hero-brillo-movil {
	0%, 100% { opacity: .38; }
	50%      { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
	.sk-hero-1-bottom-glow-1 { animation: none; }
}

/* ---------- Marcas (credenciales) ---------- */
.sk-partner-1-title {
	color: var(--ell-titulo);
}
.sk-partner-1-wrap::after {
	background: linear-gradient(90deg, var(--ell-fondo), transparent);
}
.sk-partner-1-wrap::before {
	background: linear-gradient(-90deg, var(--ell-fondo), transparent);
}
/* Logos en monocromo claro como en la demo; color original al pasar el mouse. La franja se mueve con el marquee del tema. */
.sk-partner-1-logo .single-logo img {
	display: block;
	max-height: 46px;
	max-width: 150px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: .75;
	transition: filter .3s ease, opacity .3s ease;
}
.sk-partner-1-logo .single-logo:hover {
	filter: none; /* el tema lo teñía de naranja */
}
.sk-partner-1-logo .single-logo:hover img {
	filter: none;
	opacity: 1;
}
/* Logos sin transparencia (JPG, PNG RGB/escala de grises sin tRNS, WebP sin alfa): ficha clara redondeada. */
.sk-partner-1-logo .single-logo.ell-ficha {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 66px;
	padding: 8px 14px;
	border-radius: 14px;
	background: #F3F7F3;
	opacity: .75;
	transition: opacity .3s ease;
}
.sk-partner-1-logo .single-logo.ell-ficha img {
	filter: grayscale(1);
	opacity: 1;
	max-height: 50px;
}
.sk-partner-1-logo .single-logo.ell-ficha:hover { opacity: 1; }
.sk-partner-1-logo .single-logo.ell-ficha:hover img { filter: none; }

/* ---------- Nosotros (bento con fotos reales) ---------- */
/* Brillo de fondo de la sección (aparece con el scroll, GSAP del tema) y brillos de cada tarjeta: tinte CSS. */
.sk-features-1-bg-clr img,
.ell-bento .bg-glow-1 img,
.ell-bento .bg-glow-3 img,
.sk-features-1-item-4-glow img {
	filter: var(--ell-tinte-marca);
}
.ell-bento .bg-glow-2 img {
	filter: var(--ell-tinte-verde);
}
.ell-bento .ell-card {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 380px;
	padding: 0;
	overflow: hidden;
	border-radius: 18px;
	background: var(--ell-sup-1);
	box-shadow: 0 0 0 1px var(--ell-borde);
}
/* Mancha de luz de la tarjeta 1 (antes #8532F9). */
.ell-bento .sk-features-1-item-1::after {
	background: var(--ell-marca);
	z-index: 1;
}
.ell-bento .sk-features-1-item-2 {
	height: auto;
	min-height: 473px;
}
.ell-bento [class^="bg-glow-"],
.ell-bento .sk-features-1-item-4-glow {
	z-index: 1;
	pointer-events: none;
}
.ell-bento .dot-svg,
.ell-bento .sk-features-1-item-4-dot-svg {
	z-index: 2;
	pointer-events: none;
}
.ell-card-photo,
.ell-bento .main-img.ell-card-photo {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	width: auto;
	max-width: none;
	transform: none;
}
.ell-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
	display: block;
}
.ell-card-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	/* película verde #081900 (verde del sitio viejo): suave arriba, densa donde va el texto (ver .ell-card-body::before) */
	background: linear-gradient(to top, rgba(8, 25, 0, .82) 0%, rgba(8, 25, 0, .55) 45%, rgba(8, 25, 0, .2) 75%, rgba(8, 25, 0, .08) 100%);
}
.ell-card-body {
	position: relative;
	z-index: 3;
	padding: 28px 30px;
}
.ell-card-body .title {
	color: var(--ell-titulo);
	margin-bottom: 8px;
}
.ell-card-body .disc {
	color: var(--ell-titulo);
	margin: 0;
}
.ell-legal {
	margin: 18px auto 0;
	max-width: 640px;
	text-align: center;
	font-size: 12px;
	line-height: 1.5;
	color: var(--ell-atenuado);
}
@media (max-width: 767px) {
	.ell-bento .ell-card,
	.ell-bento .sk-features-1-item-2 { min-height: 420px; }
}

/* ---------- Servicios (8 tarjetas) ---------- */
/* Formas que laten (skGlowEffect1) y fondos de tarjeta: tinte CSS. */
.sk-benefits-1-bg-shape-1 img,
.sk-benefits-1-card .bg-shape-1 img {
	filter: var(--ell-tinte-marca);
}
.sk-benefits-1-bg-shape-2 img,
.sk-benefits-1-card .bg-shape-2 img {
	filter: var(--ell-tinte-verde);
}
.sk-benefits-1-wrap {
	grid-template-columns: repeat(4, 1fr);
}
/* Líneas de luz del tema (≥1400 px): mismo trazo y ritmo (7 s), sobre las uniones de la grilla de 4 columnas. */
@media (min-width: 1400px) {
	.sk-benefits-1-wrap .ani-line-1 { animation-name: ellB1line1; }
	.sk-benefits-1-wrap .ani-line-2 { animation-name: ellB1line2; }
	.sk-benefits-1-wrap .ani-line-3,
	.sk-benefits-1-wrap .ani-line-4 { left: calc(25% - 1.5px); right: auto; }
	.sk-benefits-1-wrap .ani-line-5,
	.sk-benefits-1-wrap .ani-line-6 { right: calc(25% - 1.5px); left: auto; }
	.sk-benefits-1-wrap .ani-line-3,
	.sk-benefits-1-wrap .ani-line-6 { animation-name: ellB1line3; }
	.sk-benefits-1-wrap .ani-line-4,
	.sk-benefits-1-wrap .ani-line-5 { animation-name: ellB1line4; }
}
@keyframes ellB1line1 { 0%, 100% { transform: translateX(10px); } 50% { transform: translateX(calc(1314px / 4 - 46px)); } }
@keyframes ellB1line2 { 0%, 100% { transform: translateX(-10px); } 50% { transform: translateX(calc(-1314px / 4 + 46px)); } }
@keyframes ellB1line3 { 0%, 100% { top: 10px; } 50% { top: calc(50% - 46px); } }
@keyframes ellB1line4 { 0%, 100% { bottom: 10px; } 50% { bottom: calc(50% - 46px); } }
@media (min-width: 768px) and (max-width: 1199px) {
	.sk-benefits-1-wrap { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.sk-benefits-1-wrap { grid-template-columns: 1fr; }
}
.sk-benefits-1-card {
	background: var(--ell-sup-1);
	border-color: var(--ell-borde);
}
.sk-benefits-1-card .icon-wrap {
	background: linear-gradient(180deg, var(--ell-sup-2) 0%, var(--ell-sup-1) 100%);
	border-color: var(--ell-borde);
}
.sk-benefits-1-card .icon-elm {
	background: var(--ell-fondo);
	border-color: var(--ell-borde);
	overflow: hidden;
	border-radius: 50%;
}
.sk-benefits-1-card .icon-elm img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
}
.sk-benefits-1-card .icon-glow::before {
	background: var(--ell-marca);
}
.sk-benefits-1-card .icon-glow::after {
	background: var(--ell-verde-2);
}
.sk-benefits-1-card .title a {
	color: var(--ell-titulo);
}
.sk-benefits-1-card .title a:hover {
	color: var(--ell-marca);
}

/* ---------- Contacto (CTA y formulario) ---------- */
.sk-cta-1-wrap {
	background: var(--ell-sup-1);
	border: 1px solid var(--ell-borde);
}
/* Fondo decorativo y brillos en video de la demo (ahora alojados en el sitio): tinte CSS. */
.sk-cta-1-bg-img img,
.sk-cta-1-clr-glow-1 video {
	filter: var(--ell-tinte-marca);
}
.sk-cta-1-clr-glow-2 video {
	filter: var(--ell-tinte-verde);
}
.ell-btn-sec {
	margin-top: 6px;
	background: transparent;
	color: var(--ell-titulo) !important;
	box-shadow: inset 0 0 0 1.5px var(--ell-marca);
}
.ell-btn-sec:hover {
	background: var(--ell-marca);
	color: var(--ell-fondo) !important;
}
.sk-cta-1-content {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}
.sk-cta-1-content .sk-sec-title-1 {
	color: var(--ell-titulo);
}
.sk-cta-1-content .sec-disc {
	color: var(--ell-texto);
	margin-bottom: 28px;
}
.ell-form {
	display: grid;
	gap: 16px;
}
.ell-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
@media (max-width: 640px) {
	.ell-form-row { grid-template-columns: 1fr; }
}
.ell-field {
	display: grid;
	gap: 6px;
	margin: 0;
}
.ell-field > span {
	color: var(--ell-texto);
	font-size: 14px;
	font-weight: 500;
}
.ell-form .wpcf7-form-control-wrap {
	display: block;
}
.ell-input {
	width: 100%;
	min-height: 50px;
	padding: 12px 16px;
	border-radius: 10px;
	border: 1px solid var(--ell-borde-campo);
	background: var(--ell-fondo);
	color: var(--ell-titulo);
	font-size: 16px;
	line-height: 1.4;
}
textarea.ell-input {
	min-height: 130px;
	resize: vertical;
}
.ell-input::placeholder {
	color: var(--ell-atenuado);
	opacity: 1;
}
.ell-input:focus {
	border-color: var(--ell-marca);
	outline: 2px solid var(--ell-marca);
	outline-offset: 0;
}
.ell-acepto {
	color: var(--ell-texto);
	font-size: 14px;
	line-height: 1.5;
}
.ell-acepto input[type="checkbox"] {
	accent-color: var(--ell-marca);
	width: 18px;
	height: 18px;
	margin-right: 6px;
	vertical-align: -3px;
}
.ell-form .ell-btn {
	justify-self: start;
	min-width: 200px;
}
.ell-form .wpcf7-spinner {
	background-color: var(--ell-borde-campo);
}
.wpcf7-not-valid-tip {
	color: #FF9C8A;
	font-size: 13px;
	margin-top: 4px;
}
.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 16px;
	border-radius: 10px;
	color: var(--ell-titulo);
	border: 1px solid var(--ell-borde-campo);
}
.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--ell-marca);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	border-color: #FF9C8A;
}

/* ---------- Pie ---------- */
/* Brillos laterales del pie (widgets imagen con skGlowEffect1): tinte CSS. */
.elementor-element-ee2d825 img {
	filter: var(--ell-tinte-marca);
}
.elementor-element-f7f1ae1 img {
	filter: var(--ell-tinte-verde);
}
.ell-footer-lema {
	color: var(--ell-texto);
	margin-top: 14px;
	max-width: 320px;
}
.sk-footer-1-widget .widget-title {
	color: var(--ell-verde-2);
}
.sk-footer-1-widget ul li a {
	color: var(--ell-titulo);
}
.sk-footer-1-widget ul li a:hover,
.sk-footer-1-copyright a:hover {
	color: var(--ell-marca);
}
.sk-footer-1-big-title {
	border-bottom-color: var(--ell-borde);
}
.sk-footer-1-big-title-text {
	color: var(--ell-titulo);
}
.sk-footer-1-copyright {
	color: var(--ell-atenuado);
}

/* Palabra grande del pie: tras la entrada del tema, pista con el original y su copia (ellemental.js) que corre
   de derecha a izquierda; translateX 0 → -50 %, duración calculada en JS para ~70 px/s. Mismo tamaño, color y corte. */
.ell-pie-pista {
	display: flex;
	width: max-content;
}
.ell-pie-pista > .sk-footer-1-big-title-text {
	flex: none;
	margin-left: 0;
	margin-right: 0;
	padding-right: .4em;
}
.ell-pie-pista.ell-pie-corre {
	animation: ell-pie-bucle 20s linear infinite;
	will-change: transform;
}
.ell-pie-pista.ell-pausa {
	animation-play-state: paused;
}
@keyframes ell-pie-bucle {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.ell-pie-pista.ell-pie-corre { animation: none; }
}
.ell-nowrap {
	white-space: nowrap;
}

/* ---------- Volver arriba ---------- */
.wa-back-to-top {
	border-color: rgba(107, 255, 81, .4);
	background-color: var(--ell-sup-1);
	color: var(--ell-marca);
}
.wa-back-to-top:hover {
	color: var(--ell-verde-2);
	border-color: var(--ell-verde-2);
}

/* ---------- Páginas internas (404, búsqueda) ---------- */
.sk-breadcrumb-area {
	background: var(--ell-fondo);
}
.sk-breadcrumb-shape::after {
	background: linear-gradient(0deg, rgba(10, 15, 11, 0), var(--ell-fondo));
}
.sk-breadcrumb-shape::before {
	background: linear-gradient(180deg, rgba(10, 15, 11, 0), var(--ell-fondo));
}
.sk-breadcrumb-area stop[stop-color="#6F41EF"] {
	stop-color: #6BFF51;
}
.sk-breadcrumb-area stop[stop-color="#E8E8EA"] {
	stop-color: #14C38E;
}
.sk-breadcrumb-title {
	color: var(--ell-titulo);
}
.sk-breadcrumb-disc,
.sk-breadcrumb-list a,
.sk-breadcrumb-list span {
	color: var(--ell-texto);
}
.sk-breadcrumb-list a:hover,
.sk-breadcrumb-list .taBcrumb-end span {
	color: var(--ell-marca);
}
.sk-error-area .error-img img {
	filter: var(--ell-tinte-marca);
}
.sk-error-content .title {
	color: var(--ell-titulo);
}
.sk-error-content .disc {
	color: var(--ell-texto);
}
.sk-sidebar-widget-search-form .form-input,
.search-wrap input[type="search"],
.search-wrap input[type="text"] {
	background-color: var(--ell-fondo);
	color: var(--ell-titulo);
	border: 1px solid var(--ell-borde-campo);
}
.sk-sidebar-widget-search-form .form-btn {
	background: var(--ell-grad);
	color: var(--ell-fondo);
	box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
	.ell-btn { transition: none; }
	.ell-btn:hover { transform: none; }
}

/* ---------- Nuestros eventos (franja en movimiento del tema + lightbox) ---------- */
#eventos .tx-heading-section .sk-sec-title-1 {
	color: var(--ell-titulo);
}
.ell-evento {
	position: relative;
	background: var(--ell-sup-1);
	box-shadow: 0 0 0 1px var(--ell-borde);
	transition: box-shadow .3s ease, transform .3s ease;
}
.ell-evento-link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	overflow: hidden;
	color: var(--ell-titulo);
	text-decoration: none;
}
.ell-evento-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.ell-evento-link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 25, 0, .82) 0%, rgba(8, 25, 0, .5) 40%, rgba(8, 25, 0, .08) 70%, rgba(8, 25, 0, 0) 100%);
	pointer-events: none;
}
.ell-evento-cap {
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 16px;
	z-index: 2;
	display: grid;
	gap: 2px;
	text-align: left;
	line-height: 1.3;
}
.ell-evento-cap strong {
	color: var(--ell-titulo);
	font-size: 17px;
	font-weight: 600;
	transition: color .3s ease;
}
.ell-evento-cap span {
	color: var(--ell-titulo);
	font-size: 13.5px;
}
.ell-evento:hover,
.ell-evento:focus-within {
	box-shadow: 0 0 0 2px var(--ell-marca), 0 0 34px rgba(107, 255, 81, .3);
}
.ell-evento:hover .ell-evento-cap strong,
.ell-evento:focus-within .ell-evento-cap strong {
	color: var(--ell-marca);
}
.ell-evento:hover .ell-evento-link img {
	transform: scale(1.04);
}
.ell-evento-video .ell-evento-link {
	background:
		radial-gradient(60% 50% at 50% 40%, rgba(107, 255, 81, .18), transparent 70%),
		var(--ell-sup-1);
}
.ell-evento-play {
	position: absolute;
	top: 42%;
	left: 50%;
	z-index: 2;
	transform: translate(-50%, -50%);
	width: 70px;
	height: 70px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--ell-marca);
	color: var(--ell-fondo);
	box-shadow: 0 0 0 8px rgba(107, 255, 81, .22);
}
/* Lightbox del tema (Magnific Popup) */
.mfp-bg { background: var(--ell-fondo); opacity: .92; }
.mfp-title { color: var(--ell-texto); }
.mfp-counter { color: var(--ell-atenuado); }
.mfp-close,
.mfp-arrow { color: var(--ell-titulo); }
/* Fundidos (mainClass ell-mfp-fade, ver ellemental.js): solo opacidad. Al abrir 0,3 s; al cerrar 0,25 s (removalDelay).
   Se funde el contenedor entero (foto, controles, flechas) para no tocar la opacidad propia de las flechas (.65 / 1). */
.mfp-bg.ell-mfp-fade { opacity: 0; transition: opacity .3s ease-out; }
.mfp-bg.ell-mfp-fade.mfp-ready { opacity: .92; }
.mfp-bg.ell-mfp-fade.mfp-removing { opacity: 0; transition-duration: .25s; }
.mfp-wrap.ell-mfp-fade .mfp-container { opacity: 0; transition: opacity .3s ease-out; }
.mfp-wrap.ell-mfp-fade.mfp-ready .mfp-container { opacity: 1; }
.mfp-wrap.ell-mfp-fade.mfp-removing .mfp-container { opacity: 0; transition-duration: .25s; }
/* Cambio de foto: sale en 0,15 s y entra en 0,25 s la figura (foto, sombra, título y contador); la X y las flechas quietas. */
.mfp-wrap.ell-mfp-fade .mfp-figure > figure,
.mfp-wrap.ell-mfp-fade .mfp-figure::after { opacity: 1; transition: opacity .25s ease-out; }
.mfp-wrap.ell-mfp-fade.ell-mfp-cambiando .mfp-figure > figure,
.mfp-wrap.ell-mfp-fade.ell-mfp-cambiando .mfp-figure::after { opacity: 0; transition-duration: .15s; transition-timing-function: ease-in; }
@media (prefers-reduced-motion: reduce) {
	.mfp-bg.ell-mfp-fade,
	.mfp-wrap.ell-mfp-fade .mfp-container,
	.mfp-wrap.ell-mfp-fade .mfp-figure > figure,
	.mfp-wrap.ell-mfp-fade .mfp-figure::after { transition: none; }
}
.mfp-close:hover,
.mfp-close:focus { color: var(--ell-marca); }
@media (prefers-reduced-motion: reduce) {
	.ell-evento-link img { transition: none; }
	.ell-evento:hover .ell-evento-link img { transform: none; }
}

/* ---------- Páginas de texto (política de datos) ---------- */
.tx-page-content {
	max-width: 820px;
	margin: 0 auto;
	color: var(--ell-texto);
	font-size: 17px;
	line-height: 1.7;
}
.tx-page-content h1,
.tx-page-content h2,
.tx-page-content h3,
.tx-page-content strong {
	color: var(--ell-titulo);
}
.tx-page-content h1 { font-size: clamp(30px, 4vw, 44px); margin-bottom: 28px; }
.tx-page-content h2 { font-size: 24px; margin: 36px 0 12px; }
.tx-page-content ul { padding-left: 1.2em; margin-bottom: 1em; }
.tx-page-content li { margin-bottom: 6px; }
.tx-page-content a,
.ell-acepto a {
	color: var(--ell-marca);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.tx-page-content a:hover,
.ell-acepto a:hover {
	color: var(--ell-verde-2);
}
.tx-page-content .has-small-font-size { color: var(--ell-atenuado); font-size: 14px; }

/* ---------- Logo: símbolo + "Ellemental" en texto (provisional hasta el logo definitivo) ---------- */
.ell-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none !important;
}
.ell-logo-texto {
	font-family: var(--sk-font-2, "Mona Sans", sans-serif);
	font-weight: 600;
	font-size: 27px;          /* altura de mayúscula ≈ 40 % del símbolo de 48 px */
	line-height: 1;
	letter-spacing: -0.01em;
	color: #FFFFFF;
	white-space: nowrap;
}
.wa-offcanvas-top-logo .ell-logo-texto { font-size: 30px; }
.ell-logo-pie { gap: 16px; }
.ell-logo-pie .elementor-image,
.ell-logo-pie img { display: block; margin: 0; }
.ell-logo-pie img { width: 64px !important; height: auto; }
.ell-logo-pie .ell-logo-texto { font-size: 36px; }
.ell-logo:hover .ell-logo-texto { color: #FFFFFF; }
@media (max-width: 575px) {
	.sk-header-1-logo .ell-logo-texto { font-size: 22px; }
	.sk-header-1-logo img { height: 40px; }
	.ell-logo-pie .ell-logo-texto { font-size: 30px; }
}

/* Logo de la cabecera (escritorio y menú móvil): ellemental.js parte "Ellemental" en letras tras document.fonts.ready.
   Entrada con los valores de la palabra grande del pie (wa_split_2 del tema: 1 s, ×0.3 en ≤768 px, power3.out,
   0.05 s entre letras, opacidad 0 → 1), subiendo desde abajo dentro de una máscara. Luego, brillo por letra en ola.
   El logo del pie sigue quieto. */
@media (prefers-reduced-motion: no-preference) {
	.ell-js .sk-header-1-logo .ell-logo-texto:not(.ell-letras),
	.ell-js .wa-offcanvas-top-logo .ell-logo-texto:not(.ell-letras) {
		visibility: hidden; /* sin parpadeo antes de partir el texto */
	}
}
.ell-letra {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
}
.ell-letra-in {
	display: inline-block;
}
.ell-letras .ell-letra-in {
	animation: ell-letra-entrada 1s cubic-bezier(.215, .61, .355, 1) both; /* power3.out */
	animation-delay: calc(var(--i) * 50ms);
}
@media (max-width: 768px) {
	.ell-letras .ell-letra-in { animation-duration: .3s; }
}
@keyframes ell-letra-entrada {
	from { transform: translateY(110%); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}
/* Brillo: la máscara se agranda (y se compensa con margen negativo) para no recortar el resplandor. */
.ell-brillando .ell-letra {
	padding: 8px;
	margin: -8px;
}
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
	.ell-letras.ell-brillando .ell-letra-in {
		background: linear-gradient(100deg, #FFFFFF 34%, #6BFF51 44%, #6BFF51 56%, #FFFFFF 66%);
		background-size: 300% 100%;
		background-position: 100% 0;
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
		animation: ell-letra-brillo 2.4s linear infinite;
		animation-delay: calc(var(--i) * 90ms);
	}
}
@keyframes ell-letra-brillo {
	0% { background-position: 100% 0; filter: drop-shadow(0 0 0 rgba(107, 255, 81, 0)); }
	20% { filter: drop-shadow(0 0 6px rgba(107, 255, 81, .8)); }
	40% { background-position: 0% 0; filter: drop-shadow(0 0 0 rgba(107, 255, 81, 0)); }
	100% { background-position: 0% 0; filter: drop-shadow(0 0 0 rgba(107, 255, 81, 0)); }
}
@media (prefers-reduced-motion: reduce) {
	.ell-letra-in {
		animation: none !important;
		background: none !important;
		-webkit-text-fill-color: #FFFFFF;
		filter: none;
	}
}

/* ---------- Luz del menú: recorre todo el contorno, velocidad constante ---------- */
.sk-header-1-menu {
	position: relative;
}
.ell-menu-luz {
	position: absolute;
	top: 0;
	left: 0;
	overflow: visible;
	pointer-events: none;
	z-index: 1;
}
.ell-menu-luz rect {
	stroke-dasharray: 12 88;
	stroke-dashoffset: 0;
	stroke-linecap: round;
	animation: ellMenuLuz 6s linear infinite;
}
.ell-menu-luz-linea {
	stroke: #6BFF51;
	stroke-width: 1.5;
}
.ell-menu-luz-brillo {
	stroke: #6BFF51;
	stroke-width: 5;
	opacity: .65;
}
@keyframes ellMenuLuz {
	from { stroke-dashoffset: 0; }
	to   { stroke-dashoffset: -100; }
}
@media (prefers-reduced-motion: reduce) {
	.ell-menu-luz { display: none; }
	.sk-header-1-menu {
		box-shadow: inset -4px -1px 8px rgba(107, 255, 81, .14), 0 0 0 1px rgba(107, 255, 81, .35), 0 0 14px rgba(107, 255, 81, .18);
	}
}

/* ---------- Fotos alrededor del celular: clicables por encima de brillos y partículas ---------- */
.sk-hero-1-bg-line,
.sk-hero-1-bg-line img,
.sk-hero-1-bg-shape-1,
.sk-hero-1-bg-shape-2,
.sk-hero-1-bg-noise-1,
.sk-hero-1-bg-noise-2,
.sk-hero-1-bottom-dot,
.sk-hero-1-bottom-glow-1,
.sk-hero-1-bottom-glow-2,
.sk-hero-1-bottom-glow-1 img,
.sk-hero-1-bottom-glow-2 img {
	pointer-events: none;
}
.sk-hero-1-db-img.ell-hero-stage,
.ell-hero-cards,
.sk-hero-1-db-img-single {
	position: relative;
}
.ell-hero-cards { z-index: 4; }
.ell-hero-centro { z-index: 3; }
.ell-hero-zoom {
	display: block;
	border-radius: 13px;
	cursor: zoom-in;
	outline: none;
}
.ell-hero-card {
	transition: transform .3s ease, box-shadow .3s ease;
}
.ell-hero-card:hover,
.ell-hero-card:focus-within {
	transform: scale(1.045);
	box-shadow: 0 0 0 1px #6BFF51, 0 0 30px rgba(107, 255, 81, .45), 0 0 0 4px rgba(10, 15, 11, .6);
}
.ell-hero-zoom:focus-visible {
	outline: 3px solid #F3F7F3;
	outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	.ell-hero-card { transition: none; }
	.ell-hero-card:hover,
	.ell-hero-card:focus-within { transform: none; }
}
.ell-mfp .mfp-title { color: var(--ell-titulo); }

/* ---------- Película verde #081900 bajo el texto blanco (≥ 0.82 detrás del texto: blanco 10,6:1, #F3F7F3 9,8:1 sobre blanco puro) ---------- */
.ell-card-body::before {
	content: "";
	position: absolute;
	inset: -56px 0 0 0;
	z-index: -1;
	background: linear-gradient(to bottom, rgba(8, 25, 0, 0) 0, rgba(8, 25, 0, .82) 56px, rgba(8, 25, 0, .82) 100%);
	pointer-events: none;
}
.ell-card-body .title { color: #FFFFFF; }
.ell-evento-cap::before {
	content: "";
	position: absolute;
	inset: -40px -18px -16px -18px;
	z-index: -1;
	background: linear-gradient(to bottom, rgba(8, 25, 0, 0) 0, rgba(8, 25, 0, .82) 40px, rgba(8, 25, 0, .82) 100%);
	pointer-events: none;
}
.ell-evento-cap strong { color: #FFFFFF; }
.sk-cta-1-bg-img,
.sk-cta-1-clr-glow-1,
.sk-cta-1-clr-glow-2 {
	pointer-events: none;
}
.sk-cta-1-content {
	position: relative;
	z-index: 2;
}
.sk-cta-1-content::before {
	content: "";
	position: absolute;
	inset: -28px -32px;
	z-index: -1;
	border-radius: 24px;
	background: rgba(8, 25, 0, .82);
	box-shadow: 0 0 48px 28px rgba(8, 25, 0, .82); /* se aclara hacia afuera, donde no hay texto */
	pointer-events: none;
}
.sk-cta-1-content .sk-sec-title-1 { color: #FFFFFF; }
.sk-cta-1-content .sec-disc,
.sk-cta-1-content .ell-field > span,
.sk-cta-1-content .ell-acepto { color: var(--ell-titulo); }
