:root {
  --xs-font-size: 0.6rem;
  --sm-font-size: 0.7rem;
  --md-font-size: 0.8rem;
  --lg-font-size: 0.9rem;
}

/* Box sizing */
*, 
*:before, 
*:after {
  -webkit-box-sizing:border-box !important;
          box-sizing:border-box !important;
}

/* User select */
*:not(input):not(textarea) {
  -webkit-touch-callout:none !important;
	  -webkit-user-select:none !important;
						user-select:none !important;
					outline-style:none !important;
}

/* Clear fix */
.clearfix:before,
.clearfix:after {
  content: '';
  display: block;
}
.clearfix:after {
  clear: both;
  overflow: hidden;
}

/* Background image */
.bg-img {
  background-repeat: no-repeat !important;
  background-position: center center !important;
}

/* Background image contain */
.bg-img-contain {
  -webkit-background-size: contain !important;
          background-size: contain !important;
}

/* Background image cover */
.bg-img-cover {
  -webkit-background-size: cover !important;
          background-size: cover !important;
}

/* Conditional display/visibility */
.d-conditional:not(.show) {
  display: none !important;
}
.d-hidden:not(.show) {
  visibility: hidden !important
}

/* Curso pointer */
.cursor-pointer {
  cursor: pointer !important;
}

/* Curso default */
.cursor-default {
  cursor: default !important;
}

/* Text small caps */
.text-small-caps {
	font-variant: small-caps !important;
}

/* Text align justify */
.text-justify {
  text-align: justify !important
}

/* Text pre line */
.text-pre-line {
  white-space: pre-line !important;
}

/* Text pre wrap */
.text-pre-wrap {
  white-space: pre-wrap !important;
}

/* Text ident */
.text-indent-3 {
  text-indent: 30px !important
}

/* Letter spacing */
.letter-spacing-2 {
  letter-spacing: 2px !important;
}

/* Font size */
.fs-xs {
  font-size: var(--xs-font-size) !important;
}
.fs-sm {
  font-size: var(--sm-font-size) !important;
}
.fs-md {
  font-size: var(--md-font-size) !important;
}
.fs-lg {
  font-size: var(--lg-font-size) !important;
}

/* Overlay please wait... */
.please-wait-overlay .please-wait-panel {
  width: 320px;
  height: 160px;
  margin-left: -160px;
  margin-top: -80px;
  border-width: 3px !important;
}
.please-wait-overlay .please-wait-header {
  line-height: 30px;
}
.please-wait-overlay .please-wait-content {
  line-height: 130px;
}

/* Background color transparent */
.bg-dark-transparent {
  background-color:rgba(0,0,0,.3);
}
.bg-light-transparent {
  background-color:rgba(255,255,255,.3);
}

/* SHADOW */
.shadow-bottom {
  -webkit-box-shadow:0 0.6rem 0.3rem -0.1rem rgba(0,0,0,.3);
          box-shadow:0 0.6rem 0.3rem -0.1rem rgba(0,0,0,.3);
}
.shadow-bottom-end {
  -webkit-box-shadow: 0.6rem 0.6rem 0.3rem 0 rgba(0,0,0,0.3);
          box-shadow: 0.6rem 0.6rem 0.3rem 0 rgba(0,0,0,0.3);
}
.shadow-bottom-start {
  -webkit-box-shadow:-0.6rem 0.6rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:-0.6rem 0.6rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-top {
  -webkit-box-shadow:0 -0.6rem 0.3rem -0.1rem rgba(0,0,0,.3);
          box-shadow:0 -0.6rem 0.3rem -0.1rem rgba(0,0,0,.3);
}
.shadow-top-end {
  -webkit-box-shadow:0.6rem -0.6rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:0.6rem -0.6rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-top-start {
  -webkit-box-shadow:-0.6rem -0.6rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:-0.6rem -0.6rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-sm-bottom {
  -webkit-box-shadow:0 0.3rem 0.3rem -0.1rem rgba(0,0,0,.3);
          box-shadow:0 0.3rem 0.3rem -0.1rem rgba(0,0,0,.3);
}
.shadow-sm-bottom-end {
  -webkit-box-shadow: 0.3rem 0.3rem 0.3rem 0 rgba(0,0,0,0.3);
          box-shadow: 0.3rem 0.3rem 0.3rem 0 rgba(0,0,0,0.3);
}
.shadow-sm-bottom-start {
  -webkit-box-shadow:-0.3rem 0.3rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:-0.3rem 0.3rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-sm-top {
  -webkit-box-shadow:0 -0.3rem 0.3rem -0.1rem rgba(0,0,0,.3);
          box-shadow:0 -0.3rem 0.3rem -0.1rem rgba(0,0,0,.3);
}
.shadow-sm-top-end {
  -webkit-box-shadow:0.3rem -0.3rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:0.3rem -0.3rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-sm-top-start {
  -webkit-box-shadow:-0.3rem -0.3rem 0.3rem 0 rgba(0,0,0,.3);
          box-shadow:-0.3rem -0.3rem 0.3rem 0 rgba(0,0,0,.3);
}
.shadow-page:before {
	content: "";
	position: fixed;
	top: -0.125rem;
	left: 0;
	width: 100vw;
	height: 0.125rem;
	-webkit-box-shadow:0 0 0.125rem rgba(0,0,0,.8);
					box-shadow:0 0 0.125rem rgba(0,0,0,.8);
}

/* LINEAR GRADIENT COLORS */
.lin-grad-blue {
  background-image:-moz-linear-gradient(#363291,#4742be) !important;
  background-image:     linear-gradient(#363291,#4742be) !important;
}
.lin-grad-red {
  background-image:-moz-linear-gradient(#b30000,#F00) !important;
  background-image:     linear-gradient(#b30000,#F00)	!important;
}
.lin-grad-olive {
  background-image:-moz-linear-gradient(#660,#b3b300) !important;
  background-image:     linear-gradient(#660,#b3b300)	!important;
}	
.lin-grad-teal {
  background-image:-moz-linear-gradient(#004d4d,#099) !important;
  background-image:     linear-gradient(#004d4d,#099)	!important;
}
.lin-grad-gray {
  background-image:-moz-linear-gradient(#374048,#647382) !important;
  background-image:     linear-gradient(#374048,#647382) !important;
}
.lin-grad-green {
  background-image:-moz-linear-gradient(#006000,#009800) !important;
  background-image:     linear-gradient(#006000,#009800) !important;
}
.lin-grad-yellow {
  background-image:-moz-linear-gradient(#998500,#ffdd00) !important;
  background-image:     linear-gradient(#998500,#ffdd00) !important;
}

/* Breakpoints */
@media (min-width: 576px) {
	.w-sm-auto {
		width: auto !important;
	}
  .float-sm-start {
    float: left !important;
  }
  .float-sm-end {
    float: right !important;
  }
  .float-sm-none {
    float: none !important;
  }
}
@media (min-width: 768px) {
	.w-md-auto {
		width: auto !important;
	}
  .float-md-start {
    float: left !important;
  }
  .float-md-end {
    float: right !important;
  }
  .float-md-none {
    float: none !important;
  }
  .please-wait-overlay .please-wait-panel {
    width: 400px;
    height: 200px;
    margin-left: -200px;
    margin-top: -100px;
  }
  .please-wait-overlay .please-wait-header {
    line-height: 40px;
  }
  .please-wait-overlay .please-wait-content {
    line-height:160px;
  }
}
@media (min-width: 992px) {
	.w-lg-auto {
		width: auto !important;
	}
  .float-lg-start {
    float: left !important;
  }
  .float-lg-end {
    float: right !important;
  }
  .float-lg-none {
    float: none !important;
  }
}
@media (min-width: 1200px) {
	.w-xl-auto {
		width: auto !important;
	}
  .float-xl-start {
    float: left !important;
  }
  .float-xl-end {
    float: right !important;
  }
  .float-xl-none {
    float: none !important;
  }
  .please-wait-overlay .please-wait-panel {
    width: 500px;
    height: 200px;
    margin-left: -250px;
    margin-top: -100px;
  }
  .please-wait-overlay .please-wait-header {
    line-height: 40px;
  }
  .please-wait-overlay .please-wait-content {
    line-height:160px;
  }
}
@media (min-width: 1400px) {
	.w-xxl-auto {
		width: auto !important;
	}
  .float-xxl-start {
    float: left !important;
  }
  .float-xxl-end {
    float: right !important;
  }
  .float-xxl-none {
    float: none !important;
  }
}