/* Videos Destacados — Tarjetas */

.elementor-widget-videos_destacados_vd5636 { width: 100%; align-self: stretch; }
.elementor-widget-videos_destacados_vd5636 > .elementor-widget-container { width: 100%; }

.vd {
	--vd-cols: 3;
	--vd-gap: 32px;
	--vd-titulo: #111111;
	--vd-texto: #4b5563;
	--vd-etiqueta: #6b7280;
	--vd-acento: #111111;
	--vd-linea: #e5e7eb;
	--vd-placeholder: #ececec;
	--vd-badge-fondo: #111111;
	--vd-badge-texto: #ffffff;
	--vd-radio: 0px;

	width: 100%;
	min-width: 0;
}

/* Ojo: aquí NO se redefinen las variables dentro de media queries.
   Elementor escribe los valores del panel en .elementor-element-xxx .vd,
   con mucho más peso que estas reglas, y una media query no suma
   especificidad. Por eso abajo se sobrescriben propiedades finales
   (grid-template-columns, font-size) y nunca variables. */

/* encabezado */
.vd__etiqueta {
	margin: 0 0 12px;
	font-size: 11px; font-weight: 600; letter-spacing: .22em;
	text-transform: uppercase; color: var(--vd-etiqueta);
}
.vd__titulo {
	margin: 0 0 30px;
	font-size: 30px; line-height: 1.15; font-weight: 800;
	letter-spacing: -0.02em; color: var(--vd-titulo);
}

/* rejilla */
.vd__rejilla {
	display: grid;
	grid-template-columns: repeat(var(--vd-cols), minmax(0, 1fr));
	gap: var(--vd-gap);
}

.vd__tarjeta { display: flex; flex-direction: column; min-width: 0; }
.vd__enlace {
	display: flex; flex-direction: column; height: 100%;
	text-decoration: none; color: inherit;
}

/* miniatura */
.vd__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--vd-radio);
	background: var(--vd-placeholder);
	margin-bottom: 16px;
}
.vd__media img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s ease;
}
.vd__enlace:hover .vd__media img { transform: scale(1.04); }

.vd__sinfoto {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	padding: 16px; text-align: center;
	font-size: 12px; font-weight: 600; letter-spacing: .14em;
	text-transform: uppercase; color: #9aa0a6;
}

/* insignia de la red, sobre la imagen */
.vd__badge {
	position: absolute; top: 12px; left: 12px;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 11px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--vd-badge-texto);
	background: var(--vd-badge-fondo);
	border-radius: 3px;
}
.vd__badge svg { width: 13px; height: 13px; fill: currentColor; display: block; }

/* señal de que es video, ya que no se reproduce aquí */
.vd__play {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	pointer-events: none;
}
.vd__play span {
	display: flex; align-items: center; justify-content: center;
	width: 54px; height: 54px;
	border-radius: 50%;
	background: rgba(0,0,0,.55);
	backdrop-filter: blur(2px);
	transition: background-color .25s ease, transform .25s ease;
}
.vd__play svg { width: 18px; height: 18px; fill: #fff; margin-left: 3px; }
.vd__enlace:hover .vd__play span { background: rgba(0,0,0,.8); transform: scale(1.06); }

/* si no hubo miniatura, el botón sobraría encima del aviso */
.vd__sinfoto ~ .vd__play { display: none; }

/* textos */
.vd__fecha {
	display: block; margin-bottom: 8px;
	font-size: 11px; font-weight: 600; letter-spacing: .12em;
	text-transform: uppercase; color: var(--vd-etiqueta);
}
.vd__nombre {
	margin: 0 0 10px;
	font-size: 18px; line-height: 1.3; font-weight: 700;
	color: var(--vd-titulo);
}
.vd__enlace:hover .vd__nombre { text-decoration: underline; text-underline-offset: 3px; }

.vd__que {
	margin: 0 0 14px;
	font-size: 14px; line-height: 1.6; color: var(--vd-texto);
}

.vd__porque {
	display: block;
	margin: 0 0 14px;
	padding-left: 14px;
	border-left: 2px solid var(--vd-acento);
}
.vd__porque-et {
	display: block; margin-bottom: 5px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--vd-etiqueta);
}
.vd__porque p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--vd-texto); }

.vd__cue {
	display: block; margin-top: auto; padding-top: 14px;
	font-size: 12.5px; font-weight: 700; color: var(--vd-acento);
}

/* pantallas pequeñas */
@media (max-width: 1024px) {
	.vd__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vd__titulo { font-size: 26px; }
}
@media (max-width: 640px) {
	.vd__rejilla { grid-template-columns: minmax(0, 1fr); }
	.vd__titulo { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
	.vd__media img, .vd__play span { transition: none; }
}
