    /* https://stackoverflow.com/a/3525675/5511561 */

html,
body {
    margin: 0px;
    padding: 0px;
    min-height: 100%;
    height: 100%;
}

.container {
    min-height: 100%;
    height: auto !important;
    margin-bottom: -80px;
    /* the bottom margin is the negative value of the footer's total height */
}

.container:after {
    content: "";
    display: block;
    height: 80px;
    /* the footer's total height */
}



.footer {
    height: 80px;
    /* the footer's total height */
}

.footer-content {

    height: 55px;
    /* height + top/bottom paddding + top/bottom border must add up to footer height */
    padding: 15px;
}

.hidden {
    display:none !important;
}

a.link {
	color: #007bff !important;
	text-decoration: none !important;
	background-color: transparent !important;
}

a.link:hover {
	color: #0056b3 !important;
	text-decoration: underline !important;
}

/* loader */
.spinner {
	margin: 100px auto 0;
	width: 70px;
	text-align: center;
}

.spinner > div {
	width: 18px;
	height: 18px;
	background-color: #333;

	border-radius: 100%;
	display: inline-block;
	-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
	animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.spinner .bounce1 {
	-webkit-animation-delay: -0.32s;
	animation-delay: -0.32s;
}

.spinner .bounce2 {
	-webkit-animation-delay: -0.16s;
	animation-delay: -0.16s;
}

@-webkit-keyframes sk-bouncedelay {
	0%, 80%, 100% { -webkit-transform: scale(0) }
	40% { -webkit-transform: scale(1.0) }
}

@keyframes sk-bouncedelay {
	0%, 80%, 100% {
		-webkit-transform: scale(0);
		transform: scale(0);
	} 40% {
		  -webkit-transform: scale(1.0);
		  transform: scale(1.0);
	  }
}