/* Ariza Elementos 1.1.0 — estilos de los widgets Terreno y Cifra y del tilt de tarjetas */

/* --- Terreno: fondo que ocupa todo el contenedor padre --- */
.ariza-terreno-host,
.e-con:has(> .elementor-widget-ariza-terreno),
.e-con:has(> .e-con-inner > .elementor-widget-ariza-terreno) {
	position: relative;
	isolation: isolate;
}
.elementor-widget-ariza-terreno {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100%;
	margin: 0 !important;
	z-index: -1;
	pointer-events: none;
}
.elementor-widget-ariza-terreno > .elementor-widget-container,
.ariza-terreno,
.ariza-terreno__canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}
.ariza-terreno__reticula {
	position: absolute;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	opacity: 0;
	transition: opacity 400ms ease;
	z-index: 1;
}
.ariza-terreno.is-live .ariza-terreno__reticula { opacity: 1; }
.ariza-terreno__reticula::before,
.ariza-terreno__reticula::after {
	content: "";
	position: absolute;
	background: rgba(245, 162, 0, .55);
}
.ariza-terreno__reticula::before { left: -60px; width: 120px; height: 1px; top: 0; }
.ariza-terreno__reticula::after { top: -60px; height: 120px; width: 1px; left: 0; }
.ariza-terreno__reticula i {
	position: absolute;
	left: -14px;
	top: -14px;
	width: 28px;
	height: 28px;
	border: 1px solid #F5A200;
	border-radius: 50%;
}
.ariza-terreno__cota {
	position: absolute;
	left: 18px;
	top: 10px;
	font: 400 .72rem/1 "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	color: #FFD27A;
	letter-spacing: .04em;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
@media (hover: none) { .ariza-terreno__reticula { display: none; } }

/* --- Cifra: rodillo --- */
.ariza-cifra { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; }
.ariza-cifra__num {
	display: flex;
	align-items: baseline;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.ariza-cifra__visual { display: inline-flex; align-items: baseline; gap: .1em; }
.ariza-oculto {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.ariza-reel {
	display: inline-flex;
	align-items: center;
	height: 1em;
	line-height: 1;
	--reel-dur: 1600ms;
	--reel-ease: cubic-bezier(.16, 1, .3, 1);
}
.ariza-reel-col {
	position: relative;
	height: 1em;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%);
}
.ariza-reel-strip { display: flex; flex-direction: column; will-change: transform; }
.ariza-reel-digit { height: 1em; display: flex; align-items: center; justify-content: center; line-height: 1; }
.ariza-cifra__txt { margin: 0; line-height: 1.35; }

@media (prefers-reduced-motion: reduce) {
	.ariza-reel-strip { transition: none !important; }
	.ariza-terreno__reticula { transition: none; }
}

/* --- Tilt: inclinación 3D hacia el cursor y brillo (contenedores con la clase ariza-tilt) --- */
.ariza-tilt {
	position: relative;
	overflow: hidden;
	transform: perspective(1000px) rotateX(var(--tilt-rx, 0deg)) rotateY(var(--tilt-ry, 0deg));
	transform-style: preserve-3d;
	transition: transform 1000ms cubic-bezier(.22, 1, .36, 1);
}
.ariza-tilt.is-tilting { transition: transform 400ms cubic-bezier(.22, 1, .36, 1); }
.ariza-tilt__brillo {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0;
	border-radius: inherit;
	mix-blend-mode: screen;
	background:
		radial-gradient(circle 95px at var(--tilt-gx, 50%) var(--tilt-gy, 50%), rgba(255, 255, 255, .48), rgba(255, 255, 255, .06) 52%, rgba(255, 255, 255, 0) 84%),
		radial-gradient(circle 200px at var(--tilt-gx, 50%) var(--tilt-gy, 50%), rgba(255, 255, 255, .22), rgba(255, 255, 255, .04) 58%, rgba(255, 255, 255, 0) 78%),
		radial-gradient(circle 360px at var(--tilt-gx, 50%) var(--tilt-gy, 50%), rgba(255, 255, 255, .1), rgba(255, 255, 255, 0) 88%);
	transition: opacity 300ms cubic-bezier(.22, 1, .36, 1);
}
.ariza-tilt.is-tilting .ariza-tilt__brillo { opacity: .28; }
@media (prefers-reduced-motion: reduce) {
	.ariza-tilt { transform: none !important; transition: none; }
	.ariza-tilt__brillo { display: none; }
}
