/* ════════════════════════════════════════════════════════════════════
   Triopcion Web · componentes: superficies especiales, estilos para
   widgets nativos y widgets propios (logos, mapa, video). Sistema TDS.
   ════════════════════════════════════════════════════════════════════ */

/* ── Superficies especiales del Contenedor ────────────────────────── */
/* Tarjeta navegador (portafolio) */
.e-con.tds-surface--browser {
	overflow: hidden;
	background-color: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	border-radius: var(--tds-radius-card);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow: var(--tds-shadow);
	transition: transform var(--tds-dur-enter) var(--tds-ease), border-color var(--tds-dur-enter) var(--tds-ease);
}
.e-con.tds-surface--browser:hover { transform: translateY(-6px); border-color: rgb(104 168 221 / 0.45); }

/* Barra con los tres puntos de ventana (se dibujan en ::after, que va primero) */
.e-con.tds-surface--browser-bar { border-bottom: 1px solid var(--tds-line); }
.e-con.tds-surface--browser-bar::after {
	content: "";
	order: -1;
	flex-shrink: 0;
	width: 37px;
	height: 9px;
	background:
		radial-gradient(circle 4.5px at 4.5px 50%, #ff5f57 96%, transparent),
		radial-gradient(circle 4.5px at 18.5px 50%, #febc2e 96%, transparent),
		radial-gradient(circle 4.5px at 32.5px 50%, #28c840 96%, transparent);
}

/* Banda KPI: borde cónico animado en un solo elemento (fondo en padding-box, borde en border-box) */
@property --tds-kpi-angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}
.e-con.tds-surface--kpiband {
	overflow: hidden;
	border: 1.5px solid transparent;
	border-radius: clamp(24px, 4vw, 34px);
	background:
		linear-gradient(135deg, var(--tds-navy-800), var(--tds-navy-900) 70%) padding-box,
		conic-gradient(from var(--tds-kpi-angle), rgb(104 168 221 / 0.75), rgb(255 255 255 / 0.06) 25%,
			rgb(203 80 37 / 0.75) 50%, rgb(255 255 255 / 0.06) 75%, rgb(104 168 221 / 0.75)) border-box;
	box-shadow: 0 30px 70px rgb(20 18 46 / 0.35);
	animation: tds-kpi-spin 9s linear infinite;
}
@keyframes tds-kpi-spin { to { --tds-kpi-angle: 360deg; } }
.e-con.tds-surface--kpiband > .e-con + .e-con,
.e-con.tds-surface--kpiband > .e-con-inner > .e-con + .e-con { border-inline-start: 1px solid rgb(255 255 255 / 0.08); }
@media (max-width: 640px) {
	.e-con.tds-surface--kpiband > .e-con:nth-child(odd),
	.e-con.tds-surface--kpiband > .e-con-inner > .e-con:nth-child(odd) { border-inline-start: 0; }
	.e-con.tds-surface--kpiband > .e-con:nth-child(n + 3),
	.e-con.tds-surface--kpiband > .e-con-inner > .e-con:nth-child(n + 3) { border-top: 1px solid rgb(255 255 255 / 0.08); }
}

/* Collage de 3 fotos: la primera ancha, las otras dos cuadradas */
.e-con.tds-surface--collage {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.e-con.tds-surface--collage > .elementor-widget-image:first-child { grid-column: 1 / -1; }
.e-con.tds-surface--collage img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--tds-radius-panel);
	border: 1px solid var(--tds-glass-border);
	box-shadow: var(--tds-shadow);
}
.e-con.tds-surface--collage > .elementor-widget-image:first-child img { aspect-ratio: 16 / 9; }
.e-con.tds-surface--collage > .elementor-widget-image:not(:first-child) img { aspect-ratio: 1 / 1; }

/* ── Encabezados: rótulos y número ────────────────────────────────── */
.elementor-widget-heading.tds-style-rotulo .elementor-heading-title {
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tds-accent-text);
}
.elementor-widget-heading.tds-style-franja .elementor-heading-title {
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tds-text-dim);
}
.elementor-widget-heading.tds-style-franja .elementor-heading-title :is(b, strong) { color: var(--tds-accent-text); }
.elementor-widget-heading.tds-style-num .elementor-heading-title {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: rgb(104 168 221 / 0.14);
	border: 1px solid rgb(104 168 221 / 0.4);
	color: var(--tds-accent-text);
	font-family: var(--tds-font-display);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}
.e-con:nth-child(even) > .elementor-widget-heading.tds-style-num .elementor-heading-title {
	background: rgb(203 80 37 / 0.12);
	border-color: rgb(203 80 37 / 0.4);
	color: var(--tds-highlight);
}

/* URL dentro de la barra del navegador */
.elementor-widget-heading.tds-style-url { flex: 1; min-width: 0; }
.elementor-widget-heading.tds-style-url .elementor-heading-title {
	overflow: hidden;
	padding: 4px 14px;
	border-radius: var(--tds-radius-pill);
	background: var(--tds-glass);
	border: 1px solid var(--tds-line);
	color: var(--tds-text-dim);
	font-family: var(--tds-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	white-space: nowrap;
	text-overflow: ellipsis;
}
/* "Visitar sitio" con flecha (texto, para usar dentro de una tarjeta que ya es enlace) */
.elementor-widget-heading.tds-style-go .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--tds-accent-text);
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}
.elementor-widget-heading.tds-style-go .elementor-heading-title::after {
	content: "";
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--tds-dur-base) var(--tds-ease);
}
.e-con:hover > .elementor-widget-heading.tds-style-go .elementor-heading-title::after,
.e-con:hover .elementor-widget-heading.tds-style-go .elementor-heading-title::after { transform: translate(2px, -2px); }
/* Título corto de tarjeta (nombre de proyecto, autor de testimonio) */
.elementor-widget-heading.tds-style-card-title .elementor-heading-title {
	color: var(--tds-text);
	font-family: var(--tds-font-display);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

/* ── Texto: pequeño y cita ────────────────────────────────────────── */
.elementor-widget-text-editor.tds-style-small { color: var(--tds-text-dim); font-size: 13px; line-height: 1.45; }
.elementor-widget-text-editor.tds-style-small p { margin: 0; }
.elementor-widget-text-editor.tds-style-quote { color: var(--tds-text-dim); font-size: 15px; line-height: 1.7; }
.elementor-widget-text-editor.tds-style-quote::before {
	content: "\201C";
	display: inline;
	margin-right: 3px;
	color: var(--tds-accent-text);
	font-family: var(--tds-font-display);
	font-size: 26px;
	line-height: 0;
	vertical-align: -6px;
}
.elementor-widget-text-editor.tds-style-quote p { display: inline; }

/* ── Bandera del país ─────────────────────────────────────────────── */
.tds-flag { display: inline-flex; line-height: 0; }
.tds-flag svg { width: 17px; height: 17px; border-radius: 50%; box-shadow: 0 0 0 1px var(--tds-glass-border); }

/* ── Botón tipo enlace con flecha ─────────────────────────────────── */
.elementor-widget-button.tds-style-link .elementor-button {
	padding: 0;
	background: transparent;
	color: var(--tds-accent-text);
	font-family: var(--tds-font-display);
	font-size: 14px;
	font-weight: 700;
}
.elementor-widget-button.tds-style-link .elementor-button:is(:hover, :focus-visible) { background: transparent; color: var(--tds-accent-text); transform: none; }
.elementor-widget-button.tds-style-link .elementor-button-icon { transition: transform var(--tds-dur-base) var(--tds-ease); }
.elementor-widget-button.tds-style-link .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }

/* ── Listas de íconos: check, chips, enlaces y contacto ───────────── */
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-items { display: grid; gap: 14px 18px; }
.elementor-widget-icon-list.tds-style-check-2 .elementor-icon-list-items { grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) {
	.elementor-widget-icon-list.tds-style-check-2 .elementor-icon-list-items { grid-template-columns: 1fr; }
}
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-item {
	align-items: flex-start;
	gap: 11px;
	margin: 0;
	padding: 0;
	font-size: 14.5px;
	line-height: 1.55;
}
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-text { color: var(--tds-text-dim); padding-inline-start: 0; }
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-text :is(b, strong) {
	display: block;
	color: var(--tds-text);
	font-family: var(--tds-font-display);
	font-weight: 600;
}
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 50%;
	background: var(--tds-blue-700);
	color: var(--tds-white);
}
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-item:nth-child(even) .elementor-icon-list-icon { background: var(--tds-orange-600); }
.elementor-widget-icon-list:is(.tds-style-check, .tds-style-check-2) .elementor-icon-list-icon svg { width: 12px; height: 12px; stroke-width: 3; }

.elementor-widget-icon-list.tds-style-chips .elementor-icon-list-items { gap: 8px; }
.elementor-widget-icon-list.tds-style-chips .elementor-icon-list-item {
	margin: 0;
	padding: 8px 15px;
	border-radius: var(--tds-radius-pill);
	background: var(--tds-glass);
	border: 1px solid var(--tds-line);
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 600;
}
.elementor-widget-icon-list.tds-style-chips .elementor-icon-list-text { color: var(--tds-text); padding: 0; }

.elementor-widget-icon-list.tds-style-links .elementor-icon-list-text {
	color: var(--tds-dim-on-dark);
	font-size: 15px;
	transition: color var(--tds-dur-base) var(--tds-ease);
}
.elementor-widget-icon-list.tds-style-links .elementor-icon-list-item a { transition: transform var(--tds-dur-base) var(--tds-ease); }
.elementor-widget-icon-list.tds-style-links .elementor-icon-list-item a:hover { transform: translateX(3px); }
.elementor-widget-icon-list.tds-style-links .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--tds-blue-500); }

.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-item { gap: 10px; font-size: 14px; }
.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-item > a { gap: 10px; }
.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-text { padding-inline-start: 0; }
.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-text { color: rgb(240 244 251 / 0.85); }
.elementor-widget-icon-list.tds-style-contact a:hover .elementor-icon-list-text { color: var(--tds-white); }
.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-icon { color: var(--tds-blue-500); }
.elementor-widget-icon-list.tds-style-contact .elementor-icon-list-icon svg { width: 16px; height: 16px; }

/* ── Ícono en recuadro o círculo de color ─────────────────────────── */
.elementor-widget-icon:is(.tds-style-tile, .tds-style-circle) .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: rgb(104 168 221 / 0.14);
	border: 1px solid rgb(104 168 221 / 0.38);
	color: var(--tds-blue-500);
	font-size: 21px;
}
.elementor-widget-icon.tds-style-circle .elementor-icon { width: 54px; height: 54px; border-radius: 50%; font-size: 24px; }
.elementor-widget-icon:is(.tds-style-tile, .tds-style-circle) .elementor-icon svg { width: 1em; height: 1em; }
.e-con:nth-child(even) > .elementor-widget-icon:is(.tds-style-tile, .tds-style-circle) .elementor-icon {
	background: rgb(203 80 37 / 0.12);
	border-color: rgb(203 80 37 / 0.4);
	color: var(--tds-orange-400);
}

/* ── Caja de ícono: tarjetas ─────────────────────────────────────── */
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass) .elementor-icon-box-wrapper {
	height: 100%;
	padding: 24px 20px;
	border-radius: var(--tds-radius-card);
}
.elementor-widget-icon-box.tds-style-card .elementor-icon-box-wrapper {
	background: var(--tds-surface);
	border: 1px solid var(--tds-line);
	box-shadow: var(--tds-shadow-e1);
}
.elementor-widget-icon-box.tds-style-glass .elementor-icon-box-wrapper {
	text-align: center;
	background: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow: var(--tds-shadow);
}
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass) .elementor-icon {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: rgb(104 168 221 / 0.14);
	border: 1px solid rgb(104 168 221 / 0.4);
	color: var(--tds-blue-500);
	font-size: 24px;
}
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass):nth-child(even) .elementor-icon {
	background: rgb(203 80 37 / 0.12);
	border-color: rgb(203 80 37 / 0.4);
	color: var(--tds-orange-400);
}
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass) .elementor-icon svg { width: 1em; height: 1em; }
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass) .elementor-icon-box-title {
	margin-bottom: 6px;
	font-family: var(--tds-font-display);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}
.elementor-widget-icon-box:is(.tds-style-card, .tds-style-glass) .elementor-icon-box-description { font-size: 14px; line-height: 1.55; }

/* ── Imágenes ─────────────────────────────────────────────────────── */
.elementor-widget-image.tds-style-frame img {
	border-radius: var(--tds-radius-panel);
	border: 1px solid var(--tds-glass-border);
	box-shadow: var(--tds-shadow);
	background: var(--tds-white);
}
.elementor-widget-image.tds-style-fade-bottom img {
	-webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 99%);
	mask-image: linear-gradient(180deg, #000 70%, transparent 99%);
}
.elementor-widget-image.tds-style-shot { overflow: hidden; }
.elementor-widget-image.tds-style-shot img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1280 / 660;
	object-fit: cover;
	object-position: top;
	background: var(--tds-white);
	border-bottom: 1px solid var(--tds-line);
	transition: transform 500ms var(--tds-ease);
}
.e-con.tds-surface--browser:hover .tds-style-shot img { transform: scale(1.03); }
.elementor-widget-image.tds-style-avatar img {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid var(--tds-glass-border);
}

/* ── Contador: número KPI ─────────────────────────────────────────── */
.elementor-widget-counter.tds-style-kpi .elementor-counter-number-wrapper {
	justify-content: center;
	font-family: var(--tds-font-display);
	font-size: var(--tds-type-kpi-size);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--tds-blue-300);
}
.e-con:nth-child(even) > .elementor-widget-counter.tds-style-kpi .elementor-counter-number-wrapper { color: var(--tds-orange-400); }
.elementor-widget-counter.tds-style-kpi .elementor-counter-title {
	justify-content: center;
	margin-top: 4px;
	font-family: var(--tds-font-body);
	font-size: clamp(13px, 1.7vw, 15px);
	font-weight: 600;
	color: var(--tds-ink-on-dark);
}

/* ── Acordeón: preguntas frecuentes ───────────────────────────────── */
.elementor-widget.tds-style-faq .e-n-accordion { display: grid; gap: 12px; }
.elementor-widget.tds-style-faq .e-n-accordion-item {
	overflow: hidden;
	border-radius: var(--tds-radius-card);
	background: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow: var(--tds-shadow-e1);
}
.elementor-widget.tds-style-faq .e-n-accordion-item-title {
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	border: 0;
	background: transparent;
	font-family: var(--tds-font-display);
	font-size: 16px;
	font-weight: 600;
	color: var(--tds-text);
}
.elementor-widget.tds-style-faq .e-n-accordion-item-title-text { color: var(--tds-text); }
.elementor-widget.tds-style-faq .e-n-accordion-item-title-icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgb(104 168 221 / 0.15);
	border: 1px solid rgb(104 168 221 / 0.35);
	color: var(--tds-accent-text);
	transition: transform var(--tds-dur-enter) var(--tds-ease), background-color var(--tds-dur-enter) var(--tds-ease);
}
.elementor-widget.tds-style-faq .e-n-accordion-item-title-icon svg { width: 14px; height: 14px; }
.elementor-widget.tds-style-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
	transform: rotate(45deg);
	background: rgb(203 80 37 / 0.14);
	border-color: rgb(203 80 37 / 0.4);
	color: var(--tds-highlight);
}
.elementor-widget.tds-style-faq .e-n-accordion-item > [role="region"] {
	padding: 0 52px 22px 24px;
	border: 0;
	color: var(--tds-text-dim);
	font-size: 15px;
	line-height: 1.7;
}

/* ── Pestañas: showcase de servicios numerado ─────────────────────── */
/* Elementor pinta título y fondo activos con variables desde el CSS de cada elemento: se redefinen aquí con más especificidad */
.elementor .elementor-widget.elementor-widget-n-tabs.tds-style-showcase {
	--n-tabs-title-background-color: var(--tds-glass);
	--n-tabs-title-background-color-hover: var(--tds-glass);
	--n-tabs-title-background-color-active: rgb(203 80 37 / 0.12);
	--n-tabs-title-color: var(--tds-text);
	--n-tabs-title-color-hover: var(--tds-text);
	--n-tabs-title-color-active: var(--tds-text);
	--n-tabs-title-justify-content: flex-start;
	--n-tabs-title-text-align: start;
}
.elementor-widget.tds-style-showcase .e-n-tabs { counter-reset: tds-tab; }
.elementor-widget.tds-style-showcase .e-n-tabs-heading { gap: 12px; }
.elementor-widget.tds-style-showcase .e-n-tab-title {
	position: relative;
	flex: 1;
	justify-content: flex-start;
	gap: 16px;
	overflow: hidden;
	padding: 17px 20px;
	text-align: start;
	border-radius: var(--tds-radius-card);
	background: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	color: var(--tds-text);
	font-family: var(--tds-font-display);
	transition: border-color var(--tds-dur-base) var(--tds-ease), background-color var(--tds-dur-base) var(--tds-ease), transform var(--tds-dur-base) var(--tds-ease);
}
.elementor-widget.tds-style-showcase .e-n-tab-title::before {
	counter-increment: tds-tab;
	content: counter(tds-tab, decimal-leading-zero);
	flex-shrink: 0;
	font-size: clamp(19px, 2.4vw, 24px);
	font-weight: 700;
	line-height: 1;
	color: var(--tds-accent-text);
}
.elementor-widget.tds-style-showcase .e-n-tab-title:nth-child(even)::before { color: var(--tds-highlight); }
.elementor-widget.tds-style-showcase .e-n-tab-title-text { display: block; text-align: start; font-size: 16px; font-weight: 600; line-height: 1.25; color: inherit; }
.elementor-widget.tds-style-showcase .e-n-tab-title-text small {
	display: block;
	margin-top: 3px;
	font-family: var(--tds-font-body);
	font-size: 13px;
	font-weight: 500;
	color: var(--tds-text-dim);
}
.elementor-widget.tds-style-showcase .e-n-tab-title:hover { border-color: rgb(104 168 221 / 0.5); transform: translateX(4px); }
.elementor-widget.tds-style-showcase .e-n-tab-title[aria-selected="true"] {
	border-color: var(--tds-orange-400);
	background: rgb(203 80 37 / 0.12);
	color: var(--tds-text);
}
.elementor-widget.tds-style-showcase .e-n-tabs-content > .e-con.e-active { animation: tds-step-in 400ms var(--tds-ease); }
@keyframes tds-step-in { from { opacity: 0; transform: translateY(14px); } }

/* Barra de progreso de la autorotación: la animación misma es el temporizador (tds-web.js escucha su fin) */
.tds-autorotate-on .e-n-tab-title[aria-selected="true"]::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	height: 2px;
	transform-origin: left;
	transform: scaleX(0);
	background: linear-gradient(90deg, var(--tds-blue-500), var(--tds-orange-400));
	animation: tds-tab-progress var(--tds-rotate, 7s) linear forwards;
}
@keyframes tds-tab-progress { to { transform: scaleX(1); } }
.tds-autorotate-on:hover .e-n-tab-title[aria-selected="true"]::after,
.tds-autorotate-on.is-tds-offscreen .e-n-tab-title[aria-selected="true"]::after { animation-play-state: paused; }
.tds-autorotate-on.is-tds-stopped .e-n-tab-title[aria-selected="true"]::after { animation: none; opacity: 0; }
@media (max-width: 900px) {
	.tds-autorotate-on .e-n-tab-title[aria-selected="true"]::after { animation: none; opacity: 0; }
}

/* Loop Grid con alto igual solo por fila (no toda la grilla al alto de la tarjeta más larga) */
.elementor .elementor-element.elementor-widget-loop-grid.tds-rows-auto .elementor-loop-container { grid-auto-rows: auto; }

/* ── Carrusel de imágenes con marco ───────────────────────────────── */
.elementor-widget-image-carousel.tds-style-frame .elementor-image-carousel-wrapper {
	overflow: hidden;
	border-radius: var(--tds-radius-panel);
	border: 1px solid var(--tds-glass-border);
	background: var(--tds-white);
	box-shadow: var(--tds-shadow);
}
.elementor-widget-image-carousel.tds-style-frame .swiper-slide-image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: contain;
	padding: 12px 12px 34px;
}
.elementor-widget-image-carousel.tds-style-frame .elementor-swiper-button {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgb(255 255 255 / 0.92);
	border: 1px solid rgb(29 34 55 / 0.14);
	color: var(--tds-navy-700);
	box-shadow: 0 8px 22px rgb(35 32 79 / 0.16);
}
.elementor-widget-image-carousel.tds-style-frame .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
.elementor-widget-image-carousel.tds-style-frame .swiper-pagination-bullet {
	width: 9px;
	height: 9px;
	border-radius: var(--tds-radius-pill);
	background: rgb(29 34 55 / 0.22);
	opacity: 1;
	transition: width var(--tds-dur-base) var(--tds-ease), background-color var(--tds-dur-base) var(--tds-ease);
}
.elementor-widget-image-carousel.tds-style-frame .swiper-pagination-bullet-active { width: 24px; background: var(--tds-orange-500); }

/* Enlaces dentro de títulos (correo del footer, etc.): heredan el color del título */
.elementor-widget-heading .elementor-heading-title a { color: inherit; transition: color var(--tds-dur-base) var(--tds-ease); }
.tds-footer .elementor-widget-heading .elementor-heading-title a:hover { color: var(--tds-white); }

/* ── Íconos sociales del footer ───────────────────────────────────── */
.elementor-widget-social-icons.tds-style-footer .elementor-social-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 13px;
	background-color: rgb(255 255 255 / 0.06);
	border: 1px solid rgb(255 255 255 / 0.12);
	color: #e8ecf7;
	font-size: 19px;
	transition: transform var(--tds-dur-base) var(--tds-ease), background-color var(--tds-dur-base) var(--tds-ease);
}
.elementor-widget-social-icons.tds-style-footer .elementor-social-icon i { color: inherit; }
.elementor-widget-social-icons.tds-style-footer .elementor-social-icon svg { width: 19px; height: 19px; fill: currentColor; }
.elementor-widget-social-icons.tds-style-footer .elementor-social-icon:hover { transform: translateY(-3px); background-color: rgb(104 168 221 / 0.18); color: var(--tds-white); }

/* ── Logos en movimiento ──────────────────────────────────────────── */
.tds-logos {
	overflow: hidden;
	background-color: #fff;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
}
.tds-logos__track {
	display: flex;
	width: max-content;
	animation: tds-logos var(--tds-logos-duration, 32s) linear infinite;
}
.tds-logos:hover .tds-logos__track { animation-play-state: paused; }
.tds-logos__set {
	display: flex;
	align-items: center;
	gap: var(--tds-logos-gap, 76px);
	padding-inline-end: var(--tds-logos-gap, 76px);
}
.tds-logos .tds-logos__set img {
	flex-shrink: 0;
	width: auto;
	max-width: none;
	height: 104px;
	mix-blend-mode: multiply;
	transition: filter var(--tds-dur-enter) var(--tds-ease), transform var(--tds-dur-enter) var(--tds-ease);
}
.tds-logos--gray .tds-logos__set img { filter: grayscale(1) brightness(1.05) contrast(1.08); }
.tds-logos--gray .tds-logos__set img:hover { filter: grayscale(0) brightness(1.05) contrast(1.08); transform: scale(1.06); }
@keyframes tds-logos {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* ── Mapa de presencia ────────────────────────────────────────────── */
.tds-map { position: relative; max-width: 1020px; margin-inline: auto; }
.tds-map .tds-map__base { display: block; width: 100%; height: auto; }
.tds-map__pin {
	position: absolute;
	display: grid;
	place-items: center;
	width: clamp(30px, 4.6vw, 46px);
	height: clamp(30px, 4.6vw, 46px);
	transform: translate(-50%, -55%);
	border-radius: 26%;
	background: rgb(255 255 255 / 0.92);
	border: 1px solid rgb(255 255 255 / 0.95);
	box-shadow: 0 10px 26px rgb(35 32 79 / 0.22);
	animation: tds-pin-float 4.5s ease-in-out infinite;
}
.tds-map__pin svg { width: 62%; height: 62%; border-radius: 50%; }
.tds-map__pin::after {
	content: attr(data-name);
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	padding: 5px 12px;
	border-radius: var(--tds-radius-pill);
	background: var(--tds-navy-900);
	color: var(--tds-white);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transform: translateX(-50%) scale(0.9);
	transition: opacity var(--tds-dur-base) var(--tds-ease), transform var(--tds-dur-base) var(--tds-ease);
}
.tds-map__pin:hover::after { opacity: 1; transform: translateX(-50%) scale(1); }
@keyframes tds-pin-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -7px; }
}
.tds-map__pin--main {
	z-index: 3;
	width: clamp(42px, 6.4vw, 62px);
	height: clamp(42px, 6.4vw, 62px);
	border: 2px solid rgb(203 80 37 / 0.55);
	box-shadow: 0 14px 34px rgb(203 80 37 / 0.3);
}
.tds-map__pin--main::before {
	content: "";
	position: absolute;
	inset: -7px;
	border-radius: 30%;
	border: 2px solid rgb(203 80 37 / 0.55);
	pointer-events: none;
	animation: tds-pin-pulse 2.4s ease-out infinite;
}
@keyframes tds-pin-pulse {
	0% { transform: scale(0.82); opacity: 1; }
	100% { transform: scale(1.45); opacity: 0; }
}

/* ── Video showreel ───────────────────────────────────────────────── */
.tds-video {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: var(--tds-radius-panel);
	border: 1px solid var(--tds-glass-border);
	background: var(--tds-navy-950);
	box-shadow: var(--tds-shadow);
}
.tds-video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.tds-video__tag {
	position: absolute;
	left: 14px;
	bottom: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border-radius: var(--tds-radius-pill);
	background: rgb(12 11 30 / 0.72);
	border: 1px solid rgb(255 255 255 / 0.14);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	color: #dfe6f5;
	font-size: 12px;
	font-weight: 600;
}
.tds-video__rec { width: 8px; height: 8px; border-radius: 50%; background: #ff5d5d; animation: tds-rec 1.6s ease-in-out infinite; }
@keyframes tds-rec { 50% { opacity: 0.35; } }
.tds-video__sound {
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border-radius: 50%;
	background: rgb(12 11 30 / 0.72);
	border: 1px solid rgb(255 255 255 / 0.22);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	color: var(--tds-white);
	cursor: pointer;
	transition: transform var(--tds-dur-base) var(--tds-ease), background-color var(--tds-dur-base) var(--tds-ease);
}
.tds-video__sound:hover { transform: scale(1.08); background: rgb(12 11 30 / 0.88); }
.tds-video__sound:focus-visible { outline: none; box-shadow: var(--tds-shadow-focus); }
.tds-video__sound svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.tds-video__ic-on { display: none; }
.tds-video__sound[aria-pressed="true"] .tds-video__ic-on { display: block; }
.tds-video__sound[aria-pressed="true"] .tds-video__ic-off { display: none; }
.tds-video__sound[hidden] { display: none; }

/* ── Texto solo para lectores de pantalla ─────────────────────────── */
.tds-compare .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ── Migas de pan (lista de íconos en línea) ──────────────────────── */
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-items { gap: 8px; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item { margin: 0; padding: 0; font-size: 14px; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item::after { display: none; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-text { padding: 0; color: var(--tds-text-dim); transition: color var(--tds-dur-base) var(--tds-ease); }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item:last-child .elementor-icon-list-text { color: var(--tds-text); }
.elementor-widget-icon-list.tds-style-breadcrumb a:hover .elementor-icon-list-text { color: var(--tds-accent-text); }
/* El ícono (chevron) va después del texto: separa un ítem del siguiente */
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item > a,
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 8px; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-icon { color: var(--tds-text-dim); opacity: 0.7; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-icon svg { width: 13px; height: 13px; }
.elementor-widget-icon-list.tds-style-breadcrumb .elementor-icon-list-item:last-child .elementor-icon-list-icon { display: none; }

/* ── Pasos de un caso (El problema / Lo que hicimos / El resultado) ─ */
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-items { display: grid; gap: 4px; }
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-item { margin: 0; padding: 7px 0; }
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-icon { display: none; }
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-text {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 6px 16px;
	padding: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--tds-text-dim);
}
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-text b {
	padding-top: 3px;
	font-family: var(--tds-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tds-accent-text);
}
.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-item:last-child b { color: var(--tds-highlight); }

/* ── Chips apilados (columna lateral de pestañas) ─────────────────── */
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-items { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-item {
	margin: 0;
	padding: 9px 15px;
	border-radius: var(--tds-radius-pill);
	background: var(--tds-glass);
	border: 1px solid var(--tds-line);
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 600;
}
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-item::after { display: none; }
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-icon { color: var(--tds-accent-text); }
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-item:nth-child(even) .elementor-icon-list-icon { color: var(--tds-highlight); }
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-icon svg { width: 16px; height: 16px; }
.elementor-widget-icon-list.tds-style-stack .elementor-icon-list-text { padding-inline-start: 8px; color: var(--tds-text); }

/* ── Número grande de caso (01, 02…) ──────────────────────────────── */
.elementor-widget-heading.tds-style-case-num .elementor-heading-title {
	font-family: var(--tds-font-display);
	font-size: clamp(40px, 6vw, 64px);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.02em;
	color: var(--tds-accent-text);
}
.e-con:nth-child(even) > .elementor-widget-heading.tds-style-case-num .elementor-heading-title { color: var(--tds-highlight); }

/* ── Filas separadas por líneas (casos numerados) ─────────────────── */
.e-con.tds-surface--rows > .e-con { border-top: 1px solid var(--tds-line); }
.e-con.tds-surface--rows > .e-con:last-child { border-bottom: 1px solid var(--tds-line); }

/* ── Pestañas en píldora (horizontales, panel de vidrio) ──────────── */
.elementor .elementor-widget.elementor-widget-n-tabs.tds-style-pills {
	--n-tabs-title-background-color: transparent;
	--n-tabs-title-background-color-hover: transparent;
	--n-tabs-title-background-color-active: rgb(203 80 37 / 0.12);
	--n-tabs-title-color: var(--tds-text-dim);
	--n-tabs-title-color-hover: var(--tds-text);
	--n-tabs-title-color-active: var(--tds-text);
	--n-tabs-icon-color: var(--tds-accent-text);
	--n-tabs-icon-color-hover: var(--tds-accent-text);
	--n-tabs-icon-color-active: var(--tds-highlight);
	--n-tabs-title-padding-top: 11px;
	--n-tabs-title-padding-bottom: 11px;
	--n-tabs-title-padding-left: 20px;
	--n-tabs-title-padding-right: 20px;
	--n-tabs-title-gap: 10px;
	--n-tabs-gap: 28px;
	--n-tabs-title-font-size: 14px;
	--n-tabs-icon-size: 17px;
	--n-tabs-title-white-space: nowrap;
}
.elementor-widget.tds-style-pills > .e-n-tabs {
	padding: clamp(20px, 3.5vw, 34px);
	border-radius: var(--tds-radius-panel);
	background: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow: var(--tds-shadow);
}
.elementor-widget.tds-style-pills .e-n-tabs-heading { flex-wrap: wrap; gap: 10px; }
.elementor-widget.tds-style-pills .e-n-tab-title {
	border-radius: var(--tds-radius-pill);
	border: 1.5px solid var(--tds-line);
	font-family: var(--tds-font-display);
	font-weight: 600;
	transition: border-color var(--tds-dur-base) var(--tds-ease), color var(--tds-dur-base) var(--tds-ease), background-color var(--tds-dur-base) var(--tds-ease);
}
.elementor-widget.tds-style-pills .e-n-tab-title:hover { border-color: rgb(104 168 221 / 0.55); }
.elementor-widget.tds-style-pills .e-n-tab-title[aria-selected="true"] { border-color: var(--tds-orange-400); }
.elementor-widget.tds-style-pills .e-n-tab-title-text { font-size: 14px; }
.elementor-widget.tds-style-pills .e-n-tab-icon svg { width: 17px; height: 17px; }
.elementor-widget.tds-style-pills .e-n-tabs-content > .e-con.e-active { animation: tds-step-in 350ms var(--tds-ease); }

/* ── Línea de tiempo ─────────────────────────────────────────────── */
.tds-timeline { position: relative; margin: 0 auto; padding: 0; list-style: none; }
.tds-timeline::before {
	content: "";
	position: absolute;
	left: 19px;
	top: 10px;
	bottom: 10px;
	width: 2px;
	border-radius: 2px;
	background: linear-gradient(180deg, var(--tds-blue-500), var(--tds-orange-400));
	opacity: 0.45;
}
.tds-timeline__item { position: relative; padding: 0 0 clamp(30px, 4.5vw, 44px) clamp(54px, 7vw, 70px); }
.tds-timeline__item:last-child { padding-bottom: 0; }
.tds-timeline__dot {
	position: absolute;
	left: 7px;
	top: 2px;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--tds-bg);
	border: 2px solid var(--tds-blue-500);
}
.tds-timeline__dot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--tds-blue-500); }
.tds-timeline__item:nth-child(even) .tds-timeline__dot { border-color: var(--tds-orange-400); }
.tds-timeline__item:nth-child(even) .tds-timeline__dot::after { background: var(--tds-orange-400); }
.tds-timeline__period {
	display: inline-block;
	margin-bottom: 10px;
	padding: 5px 14px;
	border-radius: var(--tds-radius-pill);
	background: rgb(104 168 221 / 0.13);
	border: 1px solid rgb(104 168 221 / 0.35);
	font-family: var(--tds-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tds-accent-text);
}
.tds-timeline__item:nth-child(even) .tds-timeline__period { background: rgb(203 80 37 / 0.1); border-color: rgb(203 80 37 / 0.35); color: var(--tds-highlight); }
.tds-timeline__title { margin: 0 0 8px; font-family: var(--tds-font-display); font-size: clamp(18px, 2.4vw, 21px); font-weight: 700; line-height: 1.3; color: var(--tds-text); }
.tds-timeline__text { margin: 0; font-size: 15px; line-height: 1.65; color: var(--tds-text-dim); }
.tds-timeline__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.tds-timeline__chips li {
	padding: 7px 14px;
	border-radius: var(--tds-radius-pill);
	background: var(--tds-glass);
	border: 1px solid var(--tds-line);
	font-family: var(--tds-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--tds-text);
}

/* ── Tabla comparativa ───────────────────────────────────────────── */
.tds-compare {
	overflow-x: auto;
	border-radius: var(--tds-radius-panel);
	background: var(--tds-glass);
	border: 1px solid var(--tds-glass-border);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow: var(--tds-shadow);
}
.tds-compare:focus-visible { outline: 2px solid var(--tds-blue-500); outline-offset: 3px; }
.tds-compare table { width: 100%; min-width: 600px; margin: 0; border: 0; border-collapse: collapse; background: none; }
.tds-compare th,
.tds-compare td {
	padding: 15px 22px;
	border: 0;
	border-bottom: 1px solid var(--tds-line);
	background: none;
	text-align: left;
	vertical-align: top;
	font-size: 15px;
	line-height: 1.5;
}
.tds-compare tbody tr:last-child > * { border-bottom: 0; }
/* El tema pinta filas alternas y hover en las tablas: aquí no aplica */
.tds-compare tbody tr:nth-child(n) > *,
.tds-compare thead tr > * { background: none; }
.tds-compare thead th { font-family: var(--tds-font-display); font-size: 14px; font-weight: 700; letter-spacing: 0.02em; color: var(--tds-text-dim); }
.tds-compare thead th:last-child { color: var(--tds-accent-text); }
.tds-compare tbody th { font-family: var(--tds-font-display); font-size: 14px; font-weight: 600; color: var(--tds-text); white-space: nowrap; }
.tds-compare tbody td { color: var(--tds-text-dim); }
.tds-compare tbody tr:nth-child(n) > td:last-child,
.tds-compare thead tr > th:last-child { background: rgb(104 168 221 / 0.08); }
.tds-compare tbody td:last-child { color: var(--tds-text); }
.tds-compare__mark { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 10px; vertical-align: -5px; border-radius: 50%; }
.tds-compare__mark svg { width: 14px; height: 14px; stroke-width: 2.5; }
.tds-compare__mark--no { background: rgb(214 69 51 / 0.14); color: var(--tds-danger-fg); }
.tds-theme-dark .tds-compare__mark--no { color: #ff9b8a; }
.tds-compare__mark--yes { background: rgb(46 158 100 / 0.16); color: var(--tds-success-fg); }
.tds-theme-dark .tds-compare__mark--yes { color: #6fd39c; }

@media (max-width: 640px) {
	/* Comparativa en tarjetas: cada fila es un bloque con su rótulo por columna */
	.tds-compare { overflow: visible; }
	.tds-compare table { min-width: 0; }
	.tds-compare thead { display: none; }
	.tds-compare tr { display: grid; gap: 10px; padding: 18px 18px 16px; border-bottom: 1px solid var(--tds-line); }
	.tds-compare tbody tr:last-child { border-bottom: 0; }
	.tds-compare th,
	.tds-compare td { display: block; padding: 0; border: 0; }
	.tds-compare tbody tr:nth-child(n) > td:last-child { background: none; }
	.tds-compare td::before { content: attr(data-label); display: block; margin-bottom: 4px; font-family: var(--tds-font-display); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tds-text-dim); }
	.tds-compare td:last-child::before { color: var(--tds-accent-text); }
	.elementor-widget-icon-list.tds-style-case-steps .elementor-icon-list-text { grid-template-columns: 1fr; gap: 2px; }
	.elementor-widget.tds-style-pills .e-n-tab-title { flex: 1 1 auto; }
}

/* ── Documento legal (texto enriquecido con títulos numerados) ────── */
.elementor-widget-text-editor.tds-style-legal { font-size: 16px; line-height: 1.75; color: var(--tds-text-dim); }
.elementor-widget-text-editor.tds-style-legal h2 {
	scroll-margin-top: 130px;
	margin: 44px 0 14px;
	padding-top: 30px;
	border-top: 1px solid var(--tds-line);
	font-family: var(--tds-font-display);
	font-size: clamp(20px, 2.6vw, 24px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--tds-text);
}
.elementor-widget-text-editor.tds-style-legal h2 span { margin-right: 10px; color: var(--tds-accent-text); }
.elementor-widget-text-editor.tds-style-legal h3 { scroll-margin-top: 130px; margin: 26px 0 8px; font-family: var(--tds-font-display); font-size: 17px; font-weight: 600; color: var(--tds-text); }
.elementor-widget-text-editor.tds-style-legal p { margin: 0 0 14px; }
.elementor-widget-text-editor.tds-style-legal :is(ul, ol) { margin: 0 0 18px; padding-left: 22px; }
.elementor-widget-text-editor.tds-style-legal li { margin-bottom: 8px; padding-left: 4px; }
.elementor-widget-text-editor.tds-style-legal li::marker { color: var(--tds-accent-text); font-weight: 700; }
.elementor-widget-text-editor.tds-style-legal :is(b, strong) { color: var(--tds-text); font-weight: 600; }
.elementor-widget-text-editor.tds-style-legal a { color: var(--tds-accent-text); text-decoration: underline; text-underline-offset: 2px; }
.elementor-widget-text-editor.tds-style-legal .tds-legal-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
	margin: 0 0 8px;
	padding: 16px 20px;
	border-radius: var(--tds-radius-card);
	background: var(--tds-surface);
	border: 1px solid var(--tds-line);
	font-size: 14px;
}
.elementor-widget-text-editor.tds-style-legal .tds-legal-box {
	margin: 10px 0 20px;
	padding: 18px 22px;
	border-radius: var(--tds-radius-card);
	background: var(--tds-surface);
	border: 1px solid var(--tds-line);
	box-shadow: var(--tds-shadow-e1);
}
.elementor-widget-text-editor.tds-style-legal .tds-legal-box p:last-child { margin-bottom: 0; }

/* ── Índice de contenido (Table of Contents de Elementor Pro) ─────── */
.elementor .elementor-element.elementor-widget-table-of-contents.tds-toc {
	--box-background-color: var(--tds-surface);
	--box-border-color: var(--tds-line);
	--box-border-width: 1px;
	--box-border-radius: var(--tds-radius-card);
	--box-padding: 20px;
	--header-color: var(--tds-text);
	--item-text-color: var(--tds-text-dim);
	--item-text-hover-color: var(--tds-accent-text);
	--item-text-active-color: var(--tds-accent-text);
	--marker-color: var(--tds-highlight);
	--toggle-button-color: var(--tds-text-dim);
	--separator-width: 1px;
	--header-box-padding: 0 0 12px;
}
.elementor-widget-table-of-contents.tds-toc .elementor-toc__header-title { font-family: var(--tds-font-display); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.elementor-widget-table-of-contents.tds-toc .elementor-toc__list-item-text { font-size: 14px; line-height: 1.45; }
.elementor-widget-table-of-contents.tds-toc .elementor-toc__list-item-text.elementor-item-active { font-weight: 600; }
.elementor-widget-table-of-contents.tds-toc .elementor-toc__widget-container { box-shadow: var(--tds-shadow-e1); }
/* Fijo al hacer scroll en escritorio (la columna lateral se estira al alto del documento) */
@media (min-width: 1025px) {
	.elementor-widget-table-of-contents.tds-toc { position: sticky; top: 128px; }
	body.admin-bar .elementor-widget-table-of-contents.tds-toc { top: 160px; }
}

/* ── Error 404: número grande ─────────────────────────────────────── */
.elementor-widget-heading.tds-style-code .elementor-heading-title {
	font-family: var(--tds-font-display);
	font-size: clamp(88px, 16vw, 150px);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.04em;
	color: var(--tds-highlight);
}

/* ── Movimiento reducido ──────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.tds-logos__track { flex-wrap: wrap; justify-content: center; width: auto; animation: none; }
	.tds-logos__set[aria-hidden="true"] { display: none; }
	.tds-logos { -webkit-mask-image: none; mask-image: none; }
	.tds-map__pin { animation: none; }
	.tds-map__pin--main::before { animation: none; opacity: 0.5; }
	.e-con.tds-surface--kpiband { animation: none; }
	.tds-video__rec { animation: none; }
	.elementor-widget.tds-style-showcase .e-n-tabs-content > .e-con.e-active,
	.elementor-widget.tds-style-pills .e-n-tabs-content > .e-con.e-active { animation: none; }
	.tds-autorotate-on .e-n-tab-title[aria-selected="true"]::after { animation: none; opacity: 0; }
	.e-con.tds-surface--browser:hover,
	.elementor-widget.tds-style-showcase .e-n-tab-title:hover { transform: none; }
}
