.box_shadow(@shadow:  0px 0px 2px 0px rgba(0, 0, 0, @box-shadow-opacity)) {
	-webkit-box-shadow: @shadow;
		 -moz-box-shadow: @shadow;
					box-shadow: @shadow;
}
.grayscale(@value: 1) {
	-webkit-filter: grayscale(@value);
	-moz-filter: grayscale(@value);
	-o-filter: grayscale(@value);
	-ms-filter: grayscale(@value);
	filter: grayscale(@value);
}
.text_shadow(@shadow:  0px 0px 1px rgba(0, 0, 0, @text-shadow-opacity)) {
	-webkit-text-shadow: @shadow;
		 -moz-text-shadow: @shadow;
					text-shadow: @shadow;
}
.theme_transition(@theme_transition: .2s) {
	.transition(all @theme_transition ease-in-out);
	-webkit-overflow-scrolling: touch;
} 
.bgcolor_alpha(@alpha_color: #000000, @alpha_percentage: 60%) {
	background-color : @alpha_color;
	background-color : fade(@alpha_color, @alpha_percentage);
}
.rotate (@deg) {
	-webkit-transform: rotate(@deg);
	-moz-transform: 	 rotate(@deg);
	-ms-transform: 		 rotate(@deg);
	-o-transform: 		 rotate(@deg);
}
.translate (@trans_x: 10px, @trans_y: 10px) {    
	-webkit-transform : translate(@trans_x,@trans_y); 
			-ms-transform : translate(@trans_x,@trans_y); 
					transform : translate(@trans_x,@trans_y);
}
.click-disable {
	pointer-events: none;
	-webkit-pointer-events: none;
	-moz-pointer-events: none;
	-ms-pointer-events: none;
	-o-pointer-events: none;
}
.background_cover {
	-webkit-background-size : cover;
		 -moz-background-size : cover;
			 -o-background-size : cover;
	background-position     : center center;
	background-repeat       : no-repeat; 
	background-size         : cover;
}
// .background_cover_fixed {
// 	-webkit-background-size : cover;
// 		 -moz-background-size : cover;
// 			 -o-background-size : cover;
// 	background-position     : center center;
// 	background-repeat       : no-repeat; 
// 	background-size         : cover;
// 	background-attachment   : fixed;
// }
.bg_vtop { background-position: center top !important; }
.bg_vbottom { background-position: center bottom !important; }

.full_height {
    min-height: calc(~"100vh - "@header-height);
    min-height: -o-calc(~"100vh - "@header-height);
    min-height: -webkit-calc(~"100vh - "@header-height);
    min-height: -moz-calc(~"100vh - "@header-height);
  @media only screen and (max-width: 991px) {
    min-height: calc(~"100vh - "@header-height-sm);
    min-height: -o-calc(~"100vh - "@header-height-sm);
    min-height: -webkit-calc(~"100vh - "@header-height-sm);
    min-height: -moz-calc(~"100vh - "@header-height-sm);
  }
  @media only screen and (max-width: 767px) {
    min-height: calc(~"100vh - "@header-height-xs);
    min-height: -o-calc(~"100vh - "@header-height-xs);
    min-height: -webkit-calc(~"100vh - "@header-height-xs);
    min-height: -moz-calc(~"100vh - "@header-height-xs);
  }
}
.transparent_header .full_height {
	min-height: calc(100vh);
	min-height: -o-calc(100vh);
	min-height: -webkit-calc(100vh);
	min-height: -moz-calc(100vh);
}
.width_80pc {width:80%;}
.width_50pc {width:50%;}
.show {
	visibility: visible !important;
	.opacity(1) !important;
}
.not_visible { visibility: hidden; }
.pause_animation {
	-moz-animation-name    : none; 
	-webkit-animation-name : none; 
	animation-name         : none;
	visibility             : hidden; 
}
.overflow_hidden {overflow: hidden;}
.uppercase {text-transform: uppercase !important;}
.centered {text-align: center;}
.item_centered {margin-left: auto !important; margin-right: auto !important;}
//.elevate { .translate(0px,-70px); }
.lead {
	font-size: floor((@font-size-base * 1.15));
	font-weight: normal;
	@media (min-width: @screen-sm-min) {
		font-size: (@font-size-base * 1.5);
	}
}
.btn_inline {
	display: inline-block;
	margin-right: 10px;
}
.boxed {
	padding-top: 30px !important;
	padding-bottom: 30px !important;
	padding-left: 26px !important;
	padding-right: 26px !important;
}
.boxed_plus {
	padding-top: 40px !important;
	padding-bottom: 40px !important;
    padding-left: 36px !important;
    padding-right: 36px !important;
}

.boxed_special {
    .boxed_plus;
    border: solid 1px;
}

.transparent, .transparent_film { background-color: transparent !important; }
.transparent_film > * { position: relative; }
.transparent_film:before {
	display: block;
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	.bgcolor_alpha(@body-bg , @section-background-transparency);
}

.vc_parallax.transparent_film:before {z-index: 1;}

.black_section.transparent_film:before {
	.bgcolor_alpha(#000000 , @section-background-transparency);
}
.white_section.transparent_film:before {
	.bgcolor_alpha(#ffffff , @section-background-transparency);
}
.primary_section.transparent_film:before  {
	.bgcolor_alpha(darken(@primary-section-bgcolor, 5%) , @section-background-transparency);
}
.secondary_section.transparent_film:before  {
	.bgcolor_alpha(darken(@secondary-section-bgcolor, 5%) , @section-background-transparency);
}
.dark_section.transparent_film:before {
	.bgcolor_alpha(darken(@dark-section-bgcolor, 5%) , @section-background-transparency);
}
.light_section.transparent_film:before {
	.bgcolor_alpha(lighten(@light-section-bgcolor, 5%) , @section-background-transparency);
}

.neutralize_links {
	a:link, a:visited { color: @text-color !important; }
}
.black_section.neutralize_links {
	a:link, a:visited { color: @black-section-txtcolor !important; }
}
.white_section.neutralize_links {
	a:link, a:visited { color: @white-section-txtcolor !important; }
}
.primary_section.neutralize_links {
	a:link, a:visited { color: @primary-section-txtcolor !important; }
}
.secondary_section.neutralize_links {
	a:link, a:visited { color: @secondary-section-txtcolor !important; }
}
.dark_section.neutralize_links {
	a:link, a:visited { color: @dark-section-txtcolor !important; }
}
.light_section.neutralize_links {
	a:link, a:visited { color: @light-section-txtcolor !important; }
}

.gradient_film_to_top,
.gradient_film_to_bottom { background-color: transparent !important; }

.gradient_film_to_top > *,
.gradient_film_to_bottom > * { position: relative; }

.gradient_film_to_top:before,
.gradient_film_to_bottom:before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.gradient_film_to_top:before {
	background: linear-gradient(to top, @body-bg 0%, fade(@body-bg, 80%) 10%, transparent 100%);
}

.gradient_film_to_bottom:before {
	background: linear-gradient(to bottom, @body-bg 0%, fade(@body-bg, 80%) 10%, transparent 100%);
}

.black_section.gradient_film_to_bottom:before {
	background: linear-gradient(to bottom, fade(#000000,65%) 0%, transparent 100%);
}
.white_section.gradient_film_to_bottom:before {
	background: linear-gradient(to bottom, fade(#ffffff,65%) 0%, transparent 100%);
}
.primary_section.gradient_film_to_bottom:before  {
	background: linear-gradient(to bottom, fade(@primary-section-bgcolor,65%) 0%, transparent 100%);
}
.secondary_section.gradient_film_to_bottom:before  {
	background: linear-gradient(to bottom, fade(@secondary-section-bgcolor,65%) 0%, transparent 100%);
}
.dark_section.gradient_film_to_bottom:before {
	background: linear-gradient(to bottom, fade(@dark-section-bgcolor,65%) 0%, transparent 100%);
}
.light_section.gradient_film_to_bottom:before {
	background: linear-gradient(to bottom, fade(@light-section-bgcolor,65%) 0%, transparent 100%);
}
.black_section.gradient_film_to_top:before {
	background: linear-gradient(to top, fade(#000000,65%) 0%, transparent 100%);
}
.white_section.gradient_film_to_top:before {
	background: linear-gradient(to top, fade(#ffffff,65%) 0%, transparent 100%);
}
.primary_section.gradient_film_to_top:before  {
	background: linear-gradient(to top, fade(@primary-section-bgcolor,65%) 0%, transparent 100%);
}
.secondary_section.gradient_film_to_top:before  {
	background: linear-gradient(to top, fade(@secondary-section-bgcolor,65%) 0%, transparent 100%);
}
.dark_section.gradient_film_to_top:before {
	background: linear-gradient(to top, fade(@dark-section-bgcolor,65%) 0%, transparent 100%);
}
.light_section.gradient_film_to_top:before {
	background: linear-gradient(to top, fade(@light-section-bgcolor,65%) 0%, transparent 100%);
}

//== PADDINGS and MARGINS

.no_margin {margin: 0 !important;}
.no_margin_top {margin-top: 0 !important;}
.no_margin_bottom {margin-bottom: 0 !important;}
.margin_top { margin-top: @vertical-margin !important;}
.margin_bottom { margin-bottom: @vertical-margin !important;}
.margin_top_1-2 { margin-top: @vertical-margin / 2 !important;}
.margin_bottom_1-2 { margin-bottom: @vertical-margin / 2 !important;}

.padding_none {padding: 0 !important;}
.padding_top_none {padding-top: 0 !important;}
.padding_bottom_none {padding-bottom: 0 !important;}

.padding_top { padding-top: @section-vertical-padding !important;} 
.padding_bottom { padding-bottom: @section-vertical-padding !important;}

.padding_top_2-3 { padding-top: (2 * @section-vertical-padding) / 3 !important;}
.padding_bottom_2-3 { padding-bottom: (2 * @section-vertical-padding) / 3 !important;}

.padding_top_1-2 { padding-top: @section-vertical-padding / 2 !important;}
.padding_bottom_1-2 { padding-bottom: @section-vertical-padding / 2 !important;}

.padding_top_1-3 { padding-top: @section-vertical-padding / 3 !important;}
.padding_bottom_1-3 { padding-bottom: @section-vertical-padding / 3 !important;}

.padding_top_1-4 { padding-top: @section-vertical-padding / 4 !important;}
.padding_bottom_1-4 { padding-bottom: @section-vertical-padding / 4 !important;}

@media only screen and (min-width: 768px) {
	.negative_margin_top_200_front { margin-top: -200px; overflow: visible;}
	.negative_margin_top_150_front { margin-top: -150px; overflow: visible;}
	.negative_margin_top_100_front { margin-top: -100px; overflow: visible;}
	.negative_margin_top_50_front  { margin-top: -50px; overflow: visible;}
	.negative_margin_bottom_200_front  { margin-bottom: -200px; z-index: 1;}
	.negative_margin_bottom_200_front + div  { overflow: visible !important;}
	.negative_margin_bottom_150_front  { margin-bottom: -150px; z-index: 1;}
	.negative_margin_bottom_150_front + div  { overflow: visible !important;}
	.negative_margin_bottom_100_front  { margin-bottom: -100px; z-index: 1;}
	.negative_margin_bottom_100_front + div  { overflow: visible !important;}
	.negative_margin_bottom_50_front   { margin-bottom: -50px; z-index: 1;}
	.negative_margin_bottom_50_front + div  { overflow: visible !important;}
}

//== Other helper classes

.click-disable {
  -moz-user-select: -moz-none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.max_width_1 {max-width: 97px;}
.max_width_2 {max-width: 195px;}
.max_width_3 {max-width: 292px;}
.max_width_4 {max-width: 390px;}
.max_width_5 {max-width: 487px;}
.max_width_6 {max-width: 585px;}
.max_width_7 {max-width: 682px;}
.max_width_8 {max-width: 778px;}
.max_width_9 {max-width: 875px;}
.max_width_10 {max-width: 972px;}

/* - Icon Helpers */

.rounded_icons_list {
	margin-top: 24px;
	margin-bottom: 24px;
	i {
		border: solid 1px;
		width: 50px;
		height: 50px;
		line-height: 48px;
		border-radius: 50%;
		text-align: center;
		margin: 5px;
	}
}

/* - Responsive Utilities */

// @media (max-width:991px) {
//   .small-image-center {
//     float: none;
//     margin-left: auto;
//     margin-right: auto;
//   }
//   .small-text-center {
//     text-align: center !important;
//   }
// }

// @media (max-width:491px) {
//   .xs-text-center {
//     text-align: center !important;
//   }
// }

// Browser Prefixes - Which CSS prefixes should be used?
@webkit: true;
@moz: false;
@ms: false;
@o: false;

// prefix declarations
.prefixed(@property, @value) {
  & when (@webkit = true) {
    -webkit-@{property}: @value;
  }
  & when (@moz = true) {
      -moz-@{property}: @value;
  }
  & when (@ms = true) {
      -ms-@{property}: @value;
  }
  & when (@o = true) {
      -o-@{property}: @value;
  }
  @{property}: @value;
}

// prefix keyframes
.keyframes(@name; @content) {
  & when (@webkit = true) {
    @-webkit-keyframes @name {
      @content();
    }
  }
  & when (@moz = true) {
      @-moz-keyframes @name {
          @content();
      }
  }
  & when (@ms = true) {
      @-ms-keyframes @name {
          @content();
      }
  }
  & when (@o = true) {
      @-o-keyframes @name {
          @content();
      }
  }
  @keyframes @name {
    @content();
  }
}

//--------------------------------- END