/* =========================================================
   AIDO FIT HEADING
   Responsive auto-fit heading without fixed viewport formulas.
   ========================================================= */

.aido-fit-heading {
	--aido-fit-min: 28px;
	--aido-fit-max: 72px;
	--aido-fit-icon-size: 36px;
	--aido-fit-icon-gap: 10px;
	--aido-fit-icon-offset-x: 0px;
	--aido-fit-icon-offset-y: 0px;
	--aido-fit-icon-direction: row;
	--aido-fit-v-gap: 0.04em;
	display: flex;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
}

/*
 * Restablece el kerning normal de la fuente si el widget conservaba CSS
 * generado por la versión anterior del control. La compensación propia se
 * aplica sólo al carácter V/v marcado internamente por el Auto Fit.
 */
.aido-fit-heading[data-aido-v-kerning="yes"] .aido-fit-heading__title,
.aido-fit-heading[data-aido-v-kerning="yes"] .aido-fit-heading__title * {
	font-kerning: auto !important;
	font-variant-ligatures: normal !important;
	font-feature-settings: normal !important;
	font-optical-sizing: auto !important;
}

.aido-fit-heading__v-kern {
	display: inline;
	margin-inline-start: var(--aido-fit-v-gap, 0.04em);
	color: inherit;
	white-space: inherit;
}

.aido-fit-heading__content {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/* Sin icono se conserva exactamente el comportamiento histórico del widget. */
.aido-fit-heading.has-no-aido-fit-icon .aido-fit-heading__content {
	width: 100%;
}

/*
 * Con icono el contenido se comporta como un grupo y nunca supera el ancho
 * real disponible. El título es el único elemento flexible, por lo que el
 * Auto Fit mide automáticamente el espacio restante después del icono.
 */
.aido-fit-heading.has-aido-fit-icon .aido-fit-heading__content {
	display: inline-flex;
	width: fit-content;
	max-width: 100%;
	min-width: 0;
	gap: var(--aido-fit-icon-gap);
}

/* La posición del icono es responsive y Elementor actualiza esta variable
   independientemente para escritorio, tablet y móvil. */
.aido-fit-heading.has-aido-fit-icon .aido-fit-heading__content {
	flex-direction: var(--aido-fit-icon-direction, row);
	align-items: stretch;
}

.aido-fit-heading__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--aido-fit-icon-size);
	line-height: 1;
	color: #fff;
	transform: translate(var(--aido-fit-icon-offset-x), var(--aido-fit-icon-offset-y));
	transform-origin: center;
}

.aido-fit-heading__icon i,
.aido-fit-heading__icon svg {
	display: block;
	width: 1em;
	height: 1em;
	font-size: inherit;
	line-height: 1;
	fill: currentColor;
}

.aido-fit-heading__icon-image {
	display: block;
	width: var(--aido-fit-icon-size);
	height: auto;
	max-width: none;
	object-fit: contain;
}

.aido-fit-heading__title {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	color: #fff;
	text-wrap: wrap;
	overflow: visible;
	text-overflow: clip;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
	-webkit-hyphens: none;
	transition-property: color, background-color, border-color, box-shadow, text-shadow;
	transition-duration: 220ms;
	transition-timing-function: ease;
}

.aido-fit-heading.has-aido-fit-icon .aido-fit-heading__title {
	flex: 1 1 auto;
}

.aido-fit-heading[data-aido-wrap="no"] .aido-fit-heading__title,
.aido-fit-heading[data-aido-max-lines="1"] .aido-fit-heading__title {
	white-space: nowrap;
	overflow-wrap: normal;
	word-break: normal;
}

.aido-fit-heading[data-aido-wrap="yes"]:not([data-aido-max-lines="1"]) .aido-fit-heading__title {
	white-space: normal;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	-webkit-hyphens: none;
}

/* Si el mínimo configurado es físicamente demasiado grande, no truncamos
   el contenido: respetamos el mínimo y dejamos el estado marcado para debug. */
.aido-fit-heading.is-aido-fit-min-overflow,
.aido-fit-heading.is-aido-fit-min-overflow .aido-fit-heading__title {
	overflow: visible;
}

@media (prefers-reduced-motion: reduce) {
	.aido-fit-heading__title,
	.aido-fit-heading__icon {
		transition: none !important;
	}
}

/* Las etiquetas dinámicas de taxonomías/marca pueden devolver enlaces.
   El enlace forma parte visual del heading y hereda todos sus estilos. */
.aido-fit-heading__title a,
.aido-fit-heading__title a:hover,
.aido-fit-heading__title a:focus,
.aido-fit-heading__title a:active,
.aido-fit-heading__title a:visited {
	color: inherit;
	font: inherit;
	font-size: inherit;
	font-weight: inherit;
	font-style: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	word-spacing: inherit;
	text-transform: inherit;
	text-decoration: inherit;
	text-shadow: inherit;
}
