/* ILIA Hero con vector giratorio */
.elementor-widget-irh { width: 100%; }

.irh {
	--irh-dur: 120s;
	--irh-dist: 60px;
	--irh-time: 900ms;
	--irh-stagger: 180ms;
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	overflow: hidden;
	box-sizing: border-box;
	background-color: #fbedea;
}
.irh *, .irh *::before, .irh *::after { box-sizing: border-box; }

/* ---------- vector que gira ---------- */
.irh__vector {
	position: absolute;
	z-index: 0;
	right: 2%;
	top: -32%;
	width: 56%;
	aspect-ratio: 1 / 1;
	pointer-events: none;
}
.irh__vector-img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	transform-origin: 50% 50%;
	will-change: transform;
	animation: irh-spin var(--irh-dur) linear infinite;
}
.irh--ccw .irh__vector-img { animation-direction: reverse; }
.irh--still .irh__vector-img { animation: none; }

@keyframes irh-spin { to { transform: rotate(360deg); } }

/* ---------- layout ---------- */
.irh__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	align-self: stretch;
	width: 100%;
	padding: 80px 60px 80px 190px;
}
.irh__copy { width: 36%; max-width: 100%; min-width: 0; margin-right: auto; }
.irh__title { margin: 0 0 20px; font-weight: 400; }
.irh__text { margin: 0; }

/* ---------- animación de entrada ---------- */
/* Solo se oculta cuando el JS ya marcó el bloque (sin JS todo se ve) */
.irh--anim.is-armed .irh__fx {
	opacity: 0;
	transition: none;
}
.irh--anim.is-armed.irh--a-up .irh__fx    { transform: translate3d(0, var(--irh-dist), 0); }
.irh--anim.is-armed.irh--a-down .irh__fx  { transform: translate3d(0, calc(var(--irh-dist) * -1), 0); }
.irh--anim.is-armed.irh--a-left .irh__fx  { transform: translate3d(var(--irh-dist), 0, 0); }
.irh--anim.is-armed.irh--a-right .irh__fx { transform: translate3d(calc(var(--irh-dist) * -1), 0, 0); }
.irh--anim.is-armed.irh--a-zoom .irh__fx  { transform: scale(.88); }

.irh--anim.is-in .irh__fx {
	opacity: 1;
	transform: none;
	transition:
		opacity var(--irh-time) ease calc(var(--i, 0) * var(--irh-stagger)),
		transform calc(var(--irh-time) * 1.1) cubic-bezier(.22, .8, .24, 1) calc(var(--i, 0) * var(--irh-stagger));
}
/* el vector no se desplaza: solo aparece suave */
.irh--anim.is-armed .irh__vector.irh__fx { transform: none; }

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
	.irh__inner { padding: 60px 40px; }
	.irh__copy { width: 100%; }
}

/* ---------- móvil ---------- */
@media (max-width: 767px) {
	.irh__inner { padding: 48px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.irh__vector-img { animation: none; }
	.irh--anim.is-armed .irh__fx { opacity: 1; transform: none; }
	.irh--anim.is-in .irh__fx { transition: none; }
}
