/*
 * Plomería propia del theme — NO forma parte del HTML aprobado por el cliente.
 * Este archivo NO toca colores, tipografías, espaciados ni animaciones del diseño.
 * Su único objetivo: cuando el cliente sube una imagen real desde WordPress, que
 * ocupe exactamente la misma caja/proporción que ocupaba el placeholder ".img-ph"
 * en el HTML original (que no traía ninguna regla para imágenes reales).
 */

.esm-media {
	position: relative;
	overflow: hidden;
	display: block;
}

.esm-media img {
	width: 100%;
	height: 100%;
	display: block;
}

.esm-media--cover img {
	object-fit: cover;
}

.esm-media--contain {
	display: flex;
	align-items: center;
	justify-content: center;
}

.esm-media--contain img {
	object-fit: contain;
}

.esm-media--wide {
	aspect-ratio: 16 / 9;
}

.esm-media--portrait {
	aspect-ratio: 3 / 4;
}

.esm-media--square {
	aspect-ratio: 1 / 1;
}

.esm-media--logo {
	min-height: 110px;
	padding: 14px;
}

/*
 * El ancho de cada logo dentro de ".brands-strip" lo fija ahora el wrapper
 * ".brand-logo-item" (ver style-extra.css y esm_brands_strip() en
 * inc/helpers.php) — ahí también vive el nombre de la marca, que antes
 * desaparecía en cuanto se subía una imagen real (esm_media_box() solo
 * imprime esa etiqueta en el placeholder).
 */

/* El logo del header/footer no usa esm-media: es <img class="logo-img"> directo, igual que el HTML aprobado. */

/* Video de fondo opcional en el hero (ver inc/acf/home.php): ocupa la misma caja que la imagen. */
.hero-bg-slide video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * Indicador del ítem de menú activo — en el HTML aprobado esto vivía como un
 * <style> inline repetido en el <head> de cada una de las 16 páginas. Es el
 * mismo CSS, solo que consolidado una única vez.
 */
nav.links a.active-nav {
	color: var(--orange) !important;
}
nav.links a.active-nav::after {
	content: '';
	display: block;
	height: 2px;
	background: var(--grad);
	margin-top: 4px;
}
