/**
 * IE Constructora — estilos globales complementarios.
 *
 * Las reglas se apoyan en clases semánticas asignadas desde Elementor.
 * No dependen de IDs internos generados por el editor.
 */

.ie-section {
	scroll-margin-top: 6rem;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid #c9a227;
	outline-offset: 3px;
}

.ie-button .elementor-button,
.ie-hero .elementor-button,
.ie-cta .elementor-button {
	min-height: 44px;
}

@media (max-width: 767px) {
	body.elementor-page-21 .ie-hero .elementor-heading-title {
		font-size: clamp(2.25rem, 10vw, 3.25rem);
		line-height: 1.08;
		overflow-wrap: anywhere;
	}

	body.elementor-page-21 .ie-hero .elementor-widget-text-editor {
		font-size: 1rem;
		line-height: 1.5;
	}

	body.elementor-page-21 .ie-hero .elementor-button {
		width: 100%;
		max-width: 20rem;
	}

	body.elementor-page-21 .ie-trust-metrics {
		/*
		 * Elementor conserva una transformación que desplaza el bloque y genera
		 * overflow a 320 px. Se usa !important solo para neutralizar ese valor
		 * inline/generado después de comprobar el problema en staging.
		 */
		transform: none !important;
		width: 100%;
		max-width: 100%;
		margin-inline: 0;
	}

	body.elementor-page-21 .ie-trust-metrics :where(.e-con-inner, .e-con) {
		width: 100%;
		max-width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
