/* ==========================================================================
   Recursos Académicos · página pública
   --------------------------------------------------------------------------
   Ajustes de maquetación sobre la Gráfica Base del Gobierno de México.
   No se redefinen colores ni componentes: se reutilizan los del framework
   (#611232 guinda, #3A0B1F guinda oscuro, #B38E5D dorado, #F8F8F8 gris).
   ========================================================================== */

/* --- Estructura general -------------------------------------------------- */

.oculto {
	display: none !important;
}

.pagina-recursos {
	padding-top: 18px;
	padding-bottom: 10px;
}

.pagina-recursos .panel {
	margin-bottom: 20px;
}

/* --- Barra superior ------------------------------------------------------- */

.sub-navbar .navbar-brand {
	font-size: 18px;
	letter-spacing: .5px;
}

.sub-navbar .home_menu {
	font-size: 16px !important;
}

/* --- Barra de navegación (migas de pan) ---------------------------------- */

.barra-navegacion {
	margin-bottom: 18px;
	padding-bottom: 8px;
	border-bottom: 1px solid #EFEFEF;
}

.barra-navegacion .breadcrumb {
	margin: 0;
	padding: 0;
	background-color: transparent;
	font-size: 13px;
}

.barra-navegacion .entrada-sesion {
	padding-top: 2px;
	text-align: right;
}

.barra-navegacion .entrada-sesion .btn {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .3px;
	text-decoration: none;
}

/* --- Portada (banner + título) -------------------------------------------- */

.portada {
	position: relative;
	overflow: hidden;
	padding: 0;
}

.portada .imagen-banner {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
}

.portada .cabecera-pagina {
	padding: 22px 25px 4px;
}

.portada .titulo-pagina {
	margin: 0 0 6px;
	color: #611232;
	font-size: 30px;
	line-height: 1.2;
}

.portada .descripcion-pagina {
	margin: 0;
	max-width: 780px;
	color: #545454;
	font-size: 15px;
	font-weight: 300;
}

.pagina-recursos hr.red {
	position: relative;
	margin: 16px 0 18px;
}

.pagina-recursos hr.red:before {
	background-color: #B38E5D;
}

/* --- Panel de filtros ----------------------------------------------------- */

.filtros .panel-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 18px;
	font-size: 16px;
}

.filtros .panel-heading .icon-search {
	margin-right: 6px;
	color: #611232;
}

.filtros .panel-heading .ayuda {
	font-size: 12px;
	font-weight: 400;
	color: #7f858a;
}

.filtros .panel-body {
	padding: 20px 18px 6px;
}

.filtros .control-label {
	margin-bottom: 5px;
	color: #393C3E;
	font-size: 13px;
	font-weight: 600;
}

.filtros .requerido {
	color: #611232;
}

.filtros .form-control {
	height: 38px;
}

.filtros .opcional {
	margin: 0 0 6px;
	font-size: 11px;
	color: #7f858a;
}

.filtros select:disabled {
	color: #7f858a;
	background-color: #F8F8F8;
	cursor: not-allowed;
}

.acciones-busqueda {
	margin-top: 6px;
	padding-top: 16px;
	border-top: 1px solid #EFEFEF;
}

.acciones-busqueda .btn {
	min-width: 150px;
	margin-right: 8px;
	font-weight: 600;
	letter-spacing: .3px;
	text-decoration: none;
}

.acciones-busqueda .btn i {
	margin-right: 5px;
}

/* --- Zona de mensajes ----------------------------------------------------- */

#divMensaje:not(.oculto) {
	margin-bottom: 20px;
}

#divMensaje .alert {
	margin: 0;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}

/* --- Panel de resultados --------------------------------------------------- */

.resultados .panel-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 18px;
	font-size: 16px;
}

.resultados .total-registros {
	font-size: 12px;
	font-weight: 400;
	color: #545454;
}

.resultados .panel-body {
	padding: 0;
}

.tabla-contenedor {
	max-height: 520px;
	overflow: auto;
}

.tabla-recursos {
	margin-bottom: 0;
	border-bottom: 0;
}

.tabla-recursos > thead > tr > th {
	position: sticky;
	top: 0;
	z-index: 2;
	padding: 12px 18px;
	color: #FFFFFF;
	background-color: #611232;
	border-bottom: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .4px;
	text-transform: uppercase;
	white-space: nowrap;
}

.tabla-recursos > tbody > tr > td {
	padding: 12px 18px;
	vertical-align: middle;
	border-top: 1px solid #EFEFEF;
}

.tabla-recursos > tbody > tr:first-child > td {
	border-top: 0;
}

.tabla-recursos .celda-semestre {
	color: #611232;
	font-weight: 600;
	text-align: center;
}

.tabla-recursos .celda-modulo {
	color: #545454;
}

.tabla-recursos .celda-titulo {
	color: #393C3E;
}

.tabla-recursos .celda-liga {
	text-align: center;
	white-space: nowrap;
}

.tabla-recursos .btn-liga {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .3px;
	text-decoration: none;
}

.tabla-recursos .btn-liga:hover,
.tabla-recursos .btn-liga:focus {
	text-decoration: none;
}

.tabla-recursos .sin-liga {
	color: #7f858a;
	font-size: 12px;
	font-style: italic;
}

/* --- Estado vacío ---------------------------------------------------------- */

.estado-vacio {
	padding: 48px 20px;
	color: #7f858a;
	text-align: center;
}

.estado-vacio .icon-others {
	color: #B38E5D;
	font-size: 34px;
}

.estado-vacio .titulo-estado {
	margin: 14px 0 4px;
	color: #393C3E;
	font-size: 16px;
	font-weight: 600;
}

.estado-vacio .detalle-estado {
	margin: 0;
	font-size: 13px;
}

/* --- Pantallas pequeñas ----------------------------------------------------- */

@media (max-width: 767px) {
	.pagina-recursos {
		padding-top: 10px;
	}

	.portada .cabecera-pagina {
		padding: 16px 18px 2px;
	}

	.portada .titulo-pagina {
		font-size: 23px;
	}

	.portada .descripcion-pagina {
		font-size: 14px;
	}

	.barra-navegacion .entrada-sesion {
		padding-top: 0;
		text-align: left;
	}

	.filtros .panel-heading,
	.resultados .panel-heading {
		display: block;
	}

	.filtros .panel-heading .ayuda,
	.resultados .total-registros {
		display: block;
		margin-top: 4px;
	}

	.acciones-busqueda .btn {
		width: 100%;
		margin: 0 0 8px;
	}

	.tabla-recursos > thead > tr > th,
	.tabla-recursos > tbody > tr > td {
		padding: 10px 12px;
	}
}