/**
 * @package 	WordPress
 * @subpackage 	Garage
 * @version 	1.2.0
 * 
 * WooCommerce CSS Rules
 * Created by CMSMasters
 * 
 */



/*-------------------------------------------------------------------------

	0.	LESS Variables + Functions
	1. 	Shop Page
	2. 	Single Product
	3. 	Cart
	4. 	Checkout
	5. 	Order
	6. 	Dynamic Cart
	7. 	Widgets
	8. 	Shortcodes
	9.	CSS3 Animations

-------------------------------------------------------------------------*/



/*-------------------------------------------------------------------------*/
/*	0.	LESS Variables & Functions	*/
/*-------------------------------------------------------------------------*/

/***************** Variables ******************/

@input_pad:11px;

@line_height_pad:20px;
@blocks_hor_pad:20px;
@cont_vert_pad:30px;

@col_mar:2%;

@resp_blocks_pad:56.25%;

@preloader_pad:100%;


/***************** Functions ******************/
.fl () {
	float:left;
}

.fr () {
	float:right;
}

.dn () {
	display:none;
}

.tal () {
	text-align:left;
}

.tac () {
	text-align:center;
}

.tar () {
	text-align:right;
}

.cl () {
	clear:both;
}

.ovh () {
	overflow:hidden;
}

.m0a () {
	margin:0 auto;
}

.bd (@w:1px; @t:solid) {
	border-width:@w;
	border-style:@t;
}

.bdt (@w:1px; @t:solid) {
	border-top-width:@w;
	border-top-style:@t;
}

.bdb (@w:1px; @t:solid) {
	border-bottom-width:@w;
	border-bottom-style:@t;
}

.bdr (@w:1px; @t:solid) {
	border-right-width:@w;
	border-right-style:@t;
}

.bdl (@w:1px; @t:solid) {
	border-left-width:@w;
	border-left-style:@t;
}

.color_white_opacity (@op:.5) {
	color:rgba(255, 255, 255, @op);
}

.bg_white_opacity (@op:.5) {
	background-color:rgba(255, 255, 255, @op);
}

.fullwidth_in_block () {
	width:100%;
	height:100%;
	position:absolute;
	top:0;
	left:0;
}

.op (@op:.5) {
	opacity:@op;
}

.cl_after () {
	content:'.';
	display:block;
	clear:both;
	height:0;
	visibility:hidden;
	overflow:hidden;
}

.pos_abs (@w:1em; @h:1em; @l:0; @r:0; @t:0; @b:0) {
	width:@w;
	height:@h;
	margin:auto !important;
	position:absolute;
	left:@l;
	right:@r;
	top:@t;
	bottom:@b;
}

.bdbx () {
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	box-sizing:border-box;
}

.ctbx () {
	-webkit-box-sizing:content-box;
	-moz-box-sizing:content-box;
	box-sizing:content-box;
}

.bdrs (@radius:5px) {
	-webkit-border-radius:@radius;
	border-radius:@radius;
}

.bxsh (@x:0; @y:0; @blur:5px; @spred:0; @alpha:.05) {
	-webkit-box-shadow:@x @y @blur @spred rgba(0, 0, 0, @alpha);
	box-shadow:@x @y @blur @spred rgba(0, 0, 0, @alpha);
}

.bxshi (@x:0; @y:0; @blur:5px; @spred:0; @alpha:.05) {
	-webkit-box-shadow:inset @x @y @blur @spred rgba(0, 0, 0, @alpha);
	box-shadow:inset @x @y @blur @spred rgba(0, 0, 0, @alpha);
}

.bxsh_none () {
	-webkit-box-shadow:none;
	box-shadow:none;
}

.trans(@trans:0) when not (@trans = 0) {
    -webkit-transition:@trans;
    -moz-transition:@trans;
    -ms-transition:@trans;
    -o-transition:@trans;
    transition:@trans;
}



/* -------------------------------- Start WooCommerce Styles (cmsms_woo) -------------------------------- */

.woocommerce:after {
	.cl_after;
}


.cmsms_woo.fullwidth {
	padding-top:40px;
}

.cmsms_woo select {height:42px;}
	
.product .preloader {
	padding-bottom:@preloader_pad;
	
	img {
		width:100%;
		min-width:100%;
		height:100%;
		position:absolute;
		left:0;
		top:0;
	}
}

.product .cmsms_hover_slider .cmsms_hover_slider_items {
	padding-bottom:@preloader_pad;
}


/*	Star Rating */

.cmsms_star_rating {
	width:73px;
	height:12px;
	display:block;
	position:relative;
	.ovh;
	
	.cmsms_star {
		font-size:12px;
		width:13px;
		height:12px;
		display:block;
		margin-left:2px;
		position:relative;
		.ovh;
		.fl;
		
		&:first-child {
			margin-left:0;
		}
		
		&:before {
			.pos_abs;
		}
	}
	
	.cmsms_star_trans_wrap {
		position:relative;
		.ovh;
	}
	
	.cmsms_star_color_wrap {
		position:absolute;
		left:0;
		top:0;
		.ovh;
		
		.cmsms_star_color_inner {
			width:73px;
			height:12px;
			position:relative;
			.ovh;
		}
	}
}

.comment-form-rating {
	position:relative;
	.ovh;
	
	.stars {
		> span {
			display:block;
			width:65px;
			height:14px;
			position:relative;
			.ovh;
			
			&:before, 
			a:before {
				font-family:"fontello";
				line-height:1em;
				font-style:normal;
				font-weight:normal;
				text-decoration:inherit;
				text-align:center;
				vertical-align:baseline;
				font-variant:normal;
				text-transform:none;
				speak:none;
				-webkit-font-smoothing:antialiased;
				-moz-osx-font-smoothing:grayscale;
				
				font-size:14px;
				text-indent:0;
				display:block;
				width:100%;
				height:100%;
				position:absolute;
				left:0;
				top:0;
			}
			
			&:before {
				content:'\e826\e826\e826\e826\e826';
			}
			
			a:before {
				content:'\e826\e826\e826\e826\e826';
			}
		
			a {
				color:transparent;
				text-indent:9999px;
				height:100%;
				display:block;
				position:absolute;
				left:0;
				top:0;
				.ovh;
			
				&.star-1 {
					width:13px;
					z-index:10;
				}
				
				&.star-2 {
					width:26px;
					z-index:9;
				}
				
				&.star-3 {
					width:39px;
					z-index:8;
				}
				
				&.star-4 {
					width:52px;
					z-index:7;
				}
				
				&.star-5 {
					width:65px;
					z-index:6;
				}
			}
		}
	}
}


/*	Sale */

.onsale, 
.out-of-stock {
	font-size:13px;
	line-height:30px;
	.tac;
	.ovh;
	.pos_abs(56px, 30px, auto, 10px, 40px, auto);
	z-index:10;
}

.out-of-stock {
	width:110px;
	height:30px;
}



/*	Shipping */

#shipping_method {
	padding:0;
	margin:0;
	
	li {
		.ovh
		
		&:before {
			content:none;
		}
	}
}

#shipping_method, 
#ship-to-different-address, 
.payment_methods {
	position:relative;
	.ovh;
	
	li {
		position:relative;
		.ovh;
	}
	
	input[type="checkbox"], 
	input[type="radio"] {
		position:absolute;
		top:0;
		left:0;
		float:left;
		opacity:0;
	
		+ label {
			padding-left:25px;
			padding-bottom:0;
			position:relative;
			float:left;
			cursor:pointer;
			
			&:before {
				content:'';
				text-align:center;
				display:block;
				.pos_abs(17px, 17px, 0, auto, -1px);
				.bd;
				.bdrs(50%);
			}
		}
	}
	
	input[type="checkbox"] {
		+ label {
			&:before {
				.bdrs(1px);
			}
		
			&:after {
				content:'\ea85';
				font-family:'fontello';
				font-size:14px;
				font-weight:bold;
				display:block;
				.pos_abs(15px, 15px, 1px, auto, -2px);
				.op(0);
				.tac;
				line-height:14px;
			}
		}
		
		&:checked {
			+ label {
				&:after {
					.op(1);
				}
			}
		}
	}
	
	input[type="radio"] {
		+ label {
			&:after {
				content:'';
				display:block;
				-webkit-transform:scale(0);
				-moz-transform:scale(0);
				transform:scale(0);
				.pos_abs(9px, 9px, 4px, auto, -1px);
				.op(0);
				.bdrs(50%);
			}
		}
		
		&:checked {
			+ label {
				&:after {
					-webkit-transform:scale(1);
					-moz-transform:scale(1);
					transform:scale(1);
					.op(1);
				}
			}
		}
	}
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	padding:25px 25px 15px;
	margin-bottom:30px;
	position:relative;
	.bd;
	.ovh;
	
	li:before {
		content:none;
	}
	
	.button {
		float:none;
		min-width:inherit;
		margin:0 30px 10px 0;
	}
}

.woocommerce-error {
	li {
		padding-bottom:10px;
	}
}

.woocommerce-info {
	padding-bottom:25px;
}
	
	
/*	Quantity */

.quantity {
	display:inline-block;
	vertical-align:middle;
	position:relative;
	.ovh;
	
	.text {
		display:block;
		width:65px;
		min-width:0;
		height:34px;
		padding:0 0 0 5px;
		.bdrs(0);
	}
	
	.text {
		padding:0 3px;
		.bdt;
		.bdb;
		.tac;
	}
}


/*	Col2-set */

.col2-set {
	margin:0 -@col_mar 30px;
	position:relative;
	.ovh;

	> * {
		width:round((100% / 2) - (@col_mar * 2), 2);
		margin:0 @col_mar;
		float:left;
		position:relative;
		.ovh;
	}
}

.woocommerce-breadcrumb {
	margin:0;
}


/*-------------------------------------------------------------------------*/
/*	1. Shop Page */
/*-------------------------------------------------------------------------*/

.cmsms_woo_wrap_result {
	margin-top:30px;
	position:relative;
	.ovh;
	.cl;
	
	select {
		height:42px;
		width:100%;
		max-width:100%;
	}
	
	.woocommerce-result-count {
		padding:11px 10px;
		.fr;
	}
	
	.woocommerce-ordering {
		.fl;
	}
}

div.products {
	margin:0 0 50px;
	position:relative;
	.ovh;
	
	> h2 {
		margin:0;
	}
}

.cmsms_products {
	margin:0 -@col_mar;
	padding:0;
	overflow:hidden;
	position:relative;
	
	.product {
		width:round((100% / 4) - (@col_mar * 2), 2);
		margin:0 @col_mar;
		padding:0;
		position:relative;
		word-wrap:break-word;
		.ovh;
		.fl;
		
		&:before {
			content:none;
		}
		
		&.outofstock  .onsale {
			.dn;
		}
		
		.product_outer {
			padding:30px 0 0;
			position:relative;
			.ovh;
			
			.product_inner {
				margin-bottom:2px;
				position:relative;
				.ovh;
				
				.cmsms_product_header, 
				.cmsms_product_cat, 
				.cmsms_product_info {
					position:relative;
					.ovh;
				}
				
				.cmsms_product_img {
					display:block;
					.bdt;
					.bdl;
					.bdr;
					.ovh;
					
					&:hover {
						img {
							-webkit-transform:scale(1.05);
							-moz-transform:scale(1.05);
							transform:scale(1.05);
						}
					}
				}
				
				.cmsms_product_cont {
					.ovh;
					position:relative;
					
					.cmsms_product_footer {
						width:100%;
						height:36px;
						position:absolute;
						left:0;
						top:0;
						.bd;
						.ovh;
						
						.cmsms_product_footer_inner {
							position:relative;
							width:100%;
					
							> a {
								color:transparent;
								line-height:34px;
								display:inline-block;
								height:34px;
								position:absolute;
								z-index:5;
								
								&:before {
									font-size:16px;
									line-height:34px;
									width:35px;
									margin:0;
									position:relative;
									z-index:7;
									.bdr;
								}
								
								&:hover {
									z-index:6;
									
									> span {
										opacity:1;
										visibility:visible;
										left:36px;
										z-index:6;
									}
								}
								
								> span {
									display:inline-block;
									line-height:34px;
									width:82px;
									height:34px;
									padding:0 12px 0 12px;
									opacity:0;
									visibility:hidden;
									z-index:1;
									position:absolute;
									left:-90px;
									top:0;
									.ovh;
								}
								
								&.cmsms_details_button {
									> span {
										width:90px;
										left:-100px;
									}
									
									&:hover {
										> span {
											left:36px;
										}
									}
								}
								
								&.added_to_cart {
									width:0;
									z-index:8;
									
									&:hover {
										width:112px;
										padding:0 12px 0 50px;
									}
								}
								
								&.cmsms_add_to_cart_button {
									&:hover {
										z-index:6;
									}
									
									&.loading {
										z-index:1;
										.op(1);
											
										> span {
											.dn;
										}
										
										+ a  {
											.bdl;
										}
									}
									
									&.added {
										.dn;
									}
								}
								
								&.added_to_cart:before, 
								&.cmsms_add_to_cart_button.loading:before {
									content:'\ea85';
									font-family:"fontello";
									font-size:14px;
									line-height:34px;
									font-style:normal;
									font-weight:normal;
									font-variant:normal;
									text-align:center;
									text-transform:none;
									text-decoration:inherit;
									speak:none;
									display:block;
									width:35px;
									height:34px;
									margin:0;
									vertical-align:baseline;
									box-sizing:padding-box;
									-webkit-font-smoothing:antialiased;
									-moz-osx-font-smoothing:grayscale;
									position:absolute;
									left:0;
									top:0;
								}
								
								&.cmsms_add_to_cart_button.loading:before {
									content:'\e815';
									background-color:transparent;
									width:34px;
									.bdrs(50%);
									-moz-animation: spin 2s infinite linear;
									-o-animation: spin 2s infinite linear;
									-webkit-animation: spin 2s infinite linear;
									animation: spin 2s infinite linear;
									.bd(0);
									
									&:hover {
										background-color:transparent;
									}
								}
								
								&.cmsms_add_to_cart_button + .cmsms_details_button {
									left:35px;
									
									&:hover {
										z-index:1;										
									}
								}
								
								&.added_to_cart + .cmsms_details_button {
									left:36px;
									
									&:hover {
										z-index:1;										
									}
								}
							}
						}
					}
					
					.cmsms_product_info {
						display:inline-block;
						margin:1px 1px 20px;
						padding:11px 10px;
						.fr;
						
						.cmsms_star_rating {
							margin:0 auto;
						}
					}
					
					.cmsms_product_header {
						width:65%;
						padding-right:5px;
						.fl;
						
						.cmsms_product_title {
							margin:0;
							
							> a {
								.bdb;
							}
						}
					}
					
					.price {
						display:block;
						width:35%;
						position:relative;
						.tar;
						.fr;
						.ovh;
						
						ins {
							text-decoration:none;
							margin-left:5px;
						}
					}
					
					.cmsms_product_cat {
						width:65%;
						padding-right:10px;
						.fl;
					}
				}
			}
		}
	}
}

&.r_sidebar .content, 
&.l_sidebar .content {
	> .cmsms_products {
		.product {
			width:round((100% / 3) - (@col_mar * 2), 2);
			
			&:nth-child(3n+1) {
				clear:left;
			}
		}
	}
}

&.fullwidth .middle_content {
	.cmsms_products {
		.product {
			&:nth-child(4n+1) {
				clear:left;
			}
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	2. Single Product */
/*-------------------------------------------------------------------------*/

.cmsms_single_product {
	position:relative;
	.ovh;
	
	.cmsms_product_left_column {
		width:43.2%;
		padding:0 0 60px;
		position:relative;
		.fl;
		.ovh;
		
		.onsale, 
		.out-of-stock {
			left:auto;
			right:10px;
			top:10px;
		}
	
		.cmsms_product_images {
			position:relative;
			.ovh;
			
			.cmsms_product_image {
				position:relative;
				display:block;
				max-width:100%;
				.tac;
				
				img {
					width:auto;
					height:auto;
					max-width:100%;
				}
			}
			
			.cmsms_product_thumbs {
				display:block;
				margin:0 -5px;
				position:relative;
				.ovh;
				
				.cmsms_product_thumb {
					display:inline-block;
					margin:10px 5px 0;
					width:80px;
					position:relative;
					.tac;
					
					&:before {
						content:'';
						background-color:rgba(251, 251, 251, .5);
						width:100%;
						height:100%;
						position:absolute;
						left:0;
						top:0;
						.bd(1px);
						.op(0);
					}
					
					&:hover:before {
						.op(1);
					}
				}
			}
		}
		
		.cmsms_product_image {
			.bd;
			.ovh;
			
			> img {
				left:0;
				top:0;
			}
		}
	}
	
	.cmsms_product_right_column {
		width:56.8%;
		padding:0 0 60px 40px;
		position:relative;
		.fr;
		.ovh;
		
		.product_title {
			margin-bottom:5px;
		}
		
		.cmsms_star_rating {
			margin-bottom:20px;
		}
		
		.price {
			display:inline-block;
			padding-bottom:25px;
			position:relative;
			.ovh;
			
			del {
				margin-right:10px;
			}
			
			ins {
				text-decoration:none;
			}
		}
		
		.cart {
			margin:20px 0 0;
			position:relative;
			.ovh;
			
			.variations {
				width:100%;
				position:relative;
				.ovh;
				
				td {
					padding:0 15px 0 0;
					
					select {
						margin:0 15px 0 0;
					}
				}
			}
			
			.single_variation_wrap {
				margin:30px 0 0;
				position:relative;
				.ovh;
			}
			
			.quantity {
				display:block;
				margin:0 10px 10px 0;
				.fl;
			}
			
			.single_add_to_cart_button {
				line-height:18px;
				float:none;
				min-width:110px;
				padding:7px 20px;
				cursor:pointer;
			}
		}
		
		.product_meta {
			margin:10px 0 0;
			position:relative;
			.ovh;
			
			> span {
				display:block;
				margin-top:5px;
				
				&:first-child {
					margin-top:0;
				}
				
				strong {
					padding-right:2px;
				}
			}
		}
	}
	
	.cmsms_woo_tabs {
		margin:0 0 20px;
		position:relative;
		.cl;
		.ovh;
		
		.cmsms_tabs_list {
			overflow:visible !important;
			z-index:1;
			
			.cmsms_tabs_list_item {
				margin:0 -1px 0 0;
				
				&:last-child {
					margin-right:0;
				}
				&.current_tab {
				z-index:1;
				
					> a:after {
						content:'';
						width:100%;
						height:3px;
						position:absolute;
						left:0;
						bottom:-2px;
						.bdl;
						.bdr;
					}
				}
			
				> a {
					padding:10px 30px 10px 17px;;
					position:relative;
					bottom:-1px;
					.bd;
				
					&[class^="cmsms-icon-"],
					&[class^="cmsms_theme_icon_"] {
						padding:10px 30px 10px 50px;
					}
					
					&:before {
						font-size:16px;
						display:block;
						width:16px;
						height:16px;
						padding:0;
						margin:auto;
						position:absolute;
						top:0;
						bottom:0;
						left:17px;
						right:auto;
					}
				}
			}
		}
		
		.cmsms_tabs_wrap {
			padding:30px 50px 15px 30px;
			.bd;
			
			.cmsms_tab {
				.cmsms_tab_inner {
					a {
						img.alignleft {
							margin:0 35px 35px 0;
						}
					}
				}
			}
		}
		
		.shop_attributes {
			width:100%;
			position:relative;
			.ovh;
			
			th, 
			td {
				padding:10px 10px 10px 0;
				.bd(0);
				
				* {
					margin:0;
					padding:0;
				}
			}
			
			tr:first-child th, 
			tr:first-child td {
				.bdt(0);
			}
			
			th {
				font-weight:600;
				text-transform:uppercase;
				width:200px;
				max-width:100%;
			}
		}
		
		#reviews {
			position:relative;
			.ovh;
			
			#comments {
				position:relative;
				.ovh;
				
				.cmsms_star_rating {
					margin-top:8px;
					.fr;
				}
				
				> h2 {
					padding-right:15px;
					.ovh;
				}
				
				.commentlist {
					list-style:none;
					margin:30px 0 0;
					padding:30px 30px 0;
					position:relative;
					.bdt;
					.ovh;
					
					.comment {
						margin:0 0 25px;
						padding:0;
						position:relative;
						.ovh;
						
						.comment_container {
							position:relative;
							.ovh;
							
							.avatar {
								margin:0 30px 0 0;
								.fl;
							}
							
							.comment-text {
								position:relative;
								.bdb;
								.ovh;
								
								.cmsms_star_rating {
									margin:5px 0 0;
									.fr;
								}
								
								.meta {
									padding:0 15px 10px 0;
									position:relative;
									.ovh;
									
									h5 {
										margin:0;
									}
								}
								
								.description {
									position:relative;
									.cl;
									.ovh;
								}
							}
						}
						
						&:last-child {
							margin:0;
							
							.comment_container {
								.comment-text {
									.bdb(0);
								}
							}
						}
					}
				}
			}
			
			.comment-respond {
				margin-top:40px;
				padding-bottom:0;
				position:relative;
				.ovh;
				
				.comment-reply-title {
					position:relative;
					.ovh;
				}
				
				.comment-form-author, 
				.comment-form-email {
					width:round((100% / 2) - @col_mar, 2);
				}
				
				.stars {
					padding-bottom:0;
				}
				
				label {
					display:block;
					padding:0 0 10px;
				}
			}
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	3. Cart */
/*-------------------------------------------------------------------------*/

.shop_table {
	border-spacing:0;
	border-collapse:separate;
	width:100%;
	margin:0 0 50px;
	position:relative;
	.ovh;
	
	thead, 
	tr {
		width:100%;
		position:relative;
		.ovh;
	}
	
	thead {		
		th {
			padding:13px 5px 13px 25px;
		}
	}
	
	tr {
		td:first-child {
			.bdl;
		}
		
		td:last-child {
			.bdr;
		}
	}
	
	th, 
	td {
		padding:12px 5px 12px 25px;
		vertical-align:middle;
		position:relative;
		.bdb;
		.tal;
		.ovh;
	}
	
	td {
		&.product-remove {
			.remove {
				line-height:28px;
				display:inline-block;
				width:30px;
				height:30px;
				.bd;
				.tac;
			}
		}
		
		&.product-name {
			> a {

				.bdb;
			}
		}
		
		&.product-thumbnail {
			img {
				width:50px;
				height:auto;
			}
		}
		
		&.actions {
			padding:15px 20px;
			.tar;
			
			.coupon {
				position:relative;
				.fl;
				.ovh;
				
				label {
					.dn;
				}
				
				.input-text {
					padding-top:7px;
					padding-bottom:7px;
				}
			}
			
			.button {
				min-width:125px;
				max-width:100%;
				margin-left:10px;
				padding:8px 20px;
				.bd;
			}
		}
		
		&.order-actions {
			.tac;
		}
	}
}

.cart-collaterals {
	margin:0 -@col_mar;
	
	> * {
		width:round(100% - (@col_mar * 2), 2);
		float:left;
		margin:0 @col_mar;
		.cl;
	}
	
	.cross-sells {
		margin-bottom:50px;
		
		> h2 {
			margin:0;
		}
		
		.product {
			.product_inner {
				.cmsms_product_footer {
					.cmsms_product_footer_inner {
						.cmsms_product_footer {
							cmsms_add_to_cart_button.added + a {
								left:0;
							}
						}
					}
				}
			}
		}
	}
}

.cart_totals {
	position:relative;
	.ovh;
	
	> h2 {
		margin-bottom:25px;
		position:relative;
	}
	
	.wc-proceed-to-checkout {
		padding:20px 0 0;
		position:relative;
		.ovh;
	}
	
	table {
		border-spacing:0;
		border-collapse:separate;
		width:100%;
		position:relative;
		.bd;
		.bdb(0);
		.ovh;
		
		tr {
			width:100%;
			position:relative;
			.ovh;
			
			th, 
			td {
				width:43%;
				padding:15px 20px;
				vertical-align:middle;
				position:relative;
				.bdb;
				.tal;
				.ovh;
			}
			
			td {
				width:57%;
				.tar;
			}
			
			&.cart-subtotal, 
			&.order-total {
				th {
					font-weight:bold;
				}
				
				td, 
				td strong {
					font-weight:normal;
				}
			}
			
			&.shipping {
				#shipping_method {
					input[type="checkbox"], 
					input[type="radio"] {
						left:auto;
						right:0;
						.fr;
					
						+ label {
							padding-left:0 !important;
							padding-right:25px !important;
							.fr;
							
							&:before {
								left:auto;
								right:0;
							}
						}
					}
					
					input[type="checkbox"] {
						+ label {
							&:after {
								left:auto;
								right:3px;
							}
						}
					}
					
					input[type="radio"] {
						+ label {
							&:after {
								left:auto;
								right:4px;
							}
						}
					}
				}
			}
		}
	}
}

.woocommerce-shipping-calculator {
	padding:10px 0 0;
	
	> p {
		padding:0;
 	}
	
	> h2 {
		display:inline-block;
		margin-bottom:25px;
		position:relative;
		
		&:before,
		&:after {
			content:'';
			width:1px;
			height:13px;
			margin:auto;
			position:absolute;
			left:auto;
			right:-30px;
			top:0;
			bottom:0;
			background:#3d3d3d;
		}
		
		&:after {
			width:3px;
			height:1px;
			right:-31px;
			top:11px;
		}
		
		> a {
			&:before {
				content:'';
				width:5px;
				height:1px;
				margin:auto;
				position:absolute;
				left:auto;
				right:-32px;
				top:9px;
				bottom:0;
				background:#3d3d3d;
			}
		}
	}
	
	.shipping-calculator-form {
		margin:0 -@col_mar;
		padding:10px 0 0;
	
		> * {
			width:round(100% - (@col_mar * 2), 2);
			margin:0 @col_mar;
		}
		
		input, 
		select, 
		textarea, 
		button {
			width:100%;
			max-width:100%;
		}
		
		input[type="checkbox"], 
		input[type="radio"] {
			width:auto;
		}
		
		.button {
			padding:8px 15px;
			cursor:pointer;
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	4. Checkout */
/*-------------------------------------------------------------------------*/

.checkout_coupon {
	margin:0 -@col_mar 30px;
	position:relative;
	.ovh;
	
	input,
	button {
		width:100%;
		max-width:100%;
	}
	
	.form-row {
		width:round((100% / 2) - (@col_mar * 2), 2);
		margin:0 @col_mar;
		float:left;
		position:relative;
		.ovh;
		
		.button {
			.bd;
			padding:12px 15px;
		}
	}
}

.checkout {
	position:relative;
	.ovh;

	.woocommerce-billing-fields {
		margin:0 -@col_mar;
		position:relative;
		.ovh;
		
		> * {
			width:round(100% - (@col_mar * 2), 2);
			margin-left:@col_mar;
			margin-right:@col_mar;
			float:none;
			position:relative;
			.cl;
			.ovh;
		}
		
		label {
			display:block;
			padding:0 0 5px;
		}
		
		select, 
		input, 
		textarea {
			width:100%;
			max-width:100%;
		}
		
		input[type="checkbox"], 
		input[type="radio"] {
			width:auto;
		}
		
		.select2-container {
			display:block !important;
			
			.select2-choice {
				height:42px;
				padding:10px;
			}
		}
		
		#billing_country_chosen {
			display:none !important;
		}
		
		#billing_first_name_field, 
		#billing_last_name_field, 
		#billing_state_field, 
		#billing_postcode_field, 
		#billing_email_field, 
		#billing_phone_field {
			width:round((100% / 2) - (@col_mar * 2), 2);
			float:left;
			clear:none;
		}
	}

	.woocommerce-shipping-fields {
		position:relative;
		.ovh;
		
		label {
			display:block;
			padding:0 0 5px;
		}
		
		select, 
		input, 
		textarea {
			width:100%;
			max-width:100%;
		}
		
		textarea {
			min-height:200px;
		}
		
		input[type="checkbox"], 
		input[type="radio"] {
			width:auto;
		}
		
		.shipping_address {
			margin:0 -@col_mar;
			position:relative;
			.ovh;
			
			> * {
				width:round(100% - (@col_mar * 2), 2);
				margin-left:@col_mar;
				margin-right:@col_mar;
				float:none;
				position:relative;
				.cl;
				.ovh;
			}
			
			#shipping_country {
				display:block !important;
			}
			
			.select2-container {
				display:none !important;
			}
			
			#shipping_first_name_field, 
			#shipping_last_name_field, 
			#shipping_state_field, 
			#shipping_postcode_field {
				width:round((100% / 2) - (@col_mar * 2), 2);
				float:left;
				clear:none;
			}
		}
	}
	
	#order_review {
		position:relative;
		.ovh;
		
		.shop_table {
			.bdl(0);
		
			th,
			td {
				width:50%;
				.bdl;
			}
			
			thead {
				th {
					.bdt;
					font-weight:600;
					text-transform:uppercase;
				}
				
				.product-total {
					.bdr;
				}
			}
			
			td.product-name, 
			td.product-name * {
				font-weight:normal;
				text-transform:none;
			}
			
			tr.cart-subtotal, 
			tr.order-total {
				th, 
				td {
					font-weight:600;
					text-transform:uppercase;
					
					.amount {
						font-weight:600;
					}
				}
			}
		}
		
		#payment {
			padding:25px 20px 40px;
			position:relative;
			.bd;
			.ovh;
			
			.payment_methods {
				list-style:none;
				margin:0;
				padding:0;
				position:relative;
				.ovh;
				
				li {
					position:relative;
					.ovh;
				
					&:before {
						content:none;
					}
				}
				
				label {
					display:inline-block;
					float:none;
					
					img {
						.dn;
					}
				}
				
				.payment_box {
					margin:20px 0 10px;
					padding:20px 20px;
					position:relative;
					.bd;
					.cl;
					
					&:before, 
					&:after {
						content:'';
						border-bottom:10px solid transparent;
						border-left:8px solid transparent;
						border-right:8px solid transparent;
						position:absolute;
						left:25px;
						top:-10px;
					}
					
					&:after {
						top:-9px;
					}
					
					p {
						padding:0;
					}
				}
			}
			
			.place-order {
				padding:30px 0 0;
				position:relative;
				.ovh;
				
				.button {
					.bd;
					padding:8px 15px;
				}
				
				.terms {
					padding:8px 0 8px 20px;
					.fr;
					.ovh;
				}
			}
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	5. Order */
/*-------------------------------------------------------------------------*/

ul.order_details {
	list-style:none;
	margin:0 0 20px;
	padding:0;
	position:relative;
	.bd;
	.bdt(0);
	.bdr(0);
	.ovh;
	
	li {
		width:25%;
		margin:0;
		padding:0;
		position:relative;
		.bdt;
		.bdr;
		.fl;
		.ovh;
		
		&:before {
			content:none;
		}
		
		> span {
			text-transform:uppercase;
			display:block;
			padding:15px 20px;
			.bdb;
		}
		
		> strong {
			font-weight:normal;
			display:block;
			padding:15px 20px;
			
			.amount {
				background-color:transparent;
			}
		}
	}
	
	&.bacs_details {
		> li {
			font-weight:600;
			text-transform:uppercase;
			padding:15px 20px 0;
			
			strong {
				font-weight:normal;
				text-transform:none;
				margin:15px -20px 0;
				.bdt;
			}
		}
	}
}

.shop_table.order_details {
	.bdl(0);
		
	th,
	td {
		width:50%;
		.bdl;
	}
	
	thead {
		th {
			.bdt;
			font-weight:600;
			text-transform:uppercase;
			
			&:last-child {
				.bdr;
			}
		}
	}
	
	td.product-name, 
	td.product-name * {
		font-weight:normal;
		text-transform:none;
	}
	
	tfoot {
		tr {
			&:first-child, 
			&:last-child {
				th, 
				td, 
				th *, 
				td * {
					font-weight:600;
					text-transform:uppercase;
				}
			}
		}
	}
}

.customer_details {
	margin:0 0 30px;
	position:relative;
	.ovh;
	
	tr:first-child {
		th,
		td {
			.bdt;
		}
	}
	
	dt, 
	dd {
		display:block;
		min-width:15%;
		max-width:100%;
		margin-bottom:10px;
		.fl;
	}
	
	dt {
		padding-right:20px;
		clear:left;
	}
	
	th {
		.bdl;
		.bdr;
	}
}



/*-------------------------------------------------------------------------*/
/*	6. Dynamic Cart */
/*-------------------------------------------------------------------------*/

#page .cmsms_dynamic_cart {
	display:none;
}

.cmsms_dynamic_cart {
	margin-left:-3px;
	width:58px;
	height:58px;
	position:relative;
	z-index:204;
	.op(0);
	
	.cmsms_dynamic_cart_button {
		display:block;
		width:inherit;
		height:inherit;
		cursor:default;
		position:absolute;
		left:0;
		top:0;
		z-index:1;
		.bd;
		
		&:before {
			font-size:16px;
			.pos_abs(1em, 1em, -2px);
		}
	}
	
	.widget_shopping_cart_content {
		width:285px;
		max-height:400px;
		margin-top:20px;
		padding:20px 20px 0;
		visibility:hidden;
		overflow-x:hidden;
		position:absolute;
		right:0;
		top:100%;
		z-index:2;
		.bd;
		.op(0);
		
		&:before {
			content:'';
			border-left:6px solid transparent;
			border-right:6px solid transparent;
			.bdb(7px);
			width:0;
			height:0;
			position:absolute;
			right:22px;
			top:-7px;
		}
		
		.cart_list {
			list-style:none;
			max-height:745px;
			margin:0;
			padding:0;
			.ovh;
			
			li {
				margin:0;
				padding:15px 0 15px;
				.bdb;
				.ovh;
					
				&:hover {
					a.remove {
						width:auto;
						margin-left:15px;
						.op(1);
					}
				}
				
				&:before {
					content:none;
				}
				
				a {
					display:block;
					float:none;
					
					&.remove {
						width:0;
						position:relative;
						.fr;
						.op(0);
					}
				}
				
				img {
					width:50px;
					height:50px;
					margin:0 0 0 15px;
					.fr;
				}
				
				.quantity {
					position:relative;
					.ovh;
				}
			}
		}
		
		.total {
			padding:20px 0 10px;
			position:relative;
			.ovh;
			
			strong {
				margin-right:5px;
			}
		}
		
		.buttons {
			padding:0;
			margin:0 -1% 25px;
			position:relative;
			.ovh;
			
			.button {
				.fl;
				text-align:left;
				width:48%;
				min-width:inherit;
				margin:0 1%;
				padding:5px 10px 5px 20px;
				position:relative;
				
				&:after {
					content:'\e9cc';
					font-size:10px;
					line-height:20px;
					font-family:'fontello';
					width:1em;
					height:1em;
					display:inline-block;
					padding-left:15px;
					position:relative;
					vertical-align:top;
				}
			}
		}
	}
	
	&:hover .widget_shopping_cart_content, 
	.cmsms_dynamic_cart_button:hover + .widget_shopping_cart_content, 
	.widget_shopping_cart_content:hover {
		visibility:visible;
		margin-top:-1px;
		.op(1);
	}
}

.safari_only .cmsms_dynamic_cart {
	width:40px;
	
	.widget_shopping_cart_content {
		position:relative;
		width:0;
		height:0;
		-webkit-transition:none !important;
		-moz-transition:none !important;
		-ms-transition:none !important;
		-o-transition:none !important;
		transition:none !important;
	}
	
	&:hover {
		width:285px;
	}
	
	&:hover .widget_shopping_cart_content, 
	.cmsms_dynamic_cart_button:hover + .widget_shopping_cart_content, 
	.widget_shopping_cart_content:hover {
		width:270px;
		height:auto;
	}
}


.cmsms_added_product_info {
	width:285px;
	padding:15px 20px;
	position:absolute;
	right:0;
	top:100%;
	z-index:2;
	direction:rtl;
	.bd;
	.op(0);
	
	&:before {
		content:'';
		border-left:6px solid transparent;
		border-right:6px solid transparent;
		.bdb(7px);
		position:absolute;
		right:22px;
		top:-7px;
	}
	
	.cmsms_added_product_info_text,
	.cmsms_added_product_info_img {
		display:inline-block;
		vertical-align:middle;
	}
	
	.cmsms_added_product_info_img {
		width:50px;
		height:50px;
	}
	
	.cmsms_added_product_info_text {
		width:190px;
		padding:15px 15px 15px 0;
	}
}



/*-------------------------------------------------------------------------*/
/*	7. Widgets */
/*-------------------------------------------------------------------------*/

.widget_product_search {
	position:relative;
	.ovh;
	
	form {
		position:relative;
		.ovh;
		
		label {
			font-size:16px;
			text-indent:-99999px;
			.pos_abs(40px, 40px, auto, 0);
		}
		
		&:before {
			content:'\ec70';
			font-family:'fontello';
			line-height:1em;
			display:block;
			text-indent:0;
			.pos_abs(1em, 1em, auto, 13px);
		}
		
		input[type="text"],
		input[type="search"] {
			display:block;
			width:100%;
			height:42px;
			padding:10px 50px 10px 10px;
		}
		
		input[type="submit"] {
			background-color:transparent;
			color:transparent;
			.pos_abs(42px, 42px, auto, 0);
			.bdl;
			
		}
		
		.screen-reader-text {
			box-sizing:content-box;
		}
	}
}

.widget_shopping_cart {
	position:relative;
	.ovh;
	
	.widget_shopping_cart_content {
		position:relative;
		.ovh;
		
		.cart_list {
			list-style:none;
			max-height:745px;
			margin:0;
			padding:0;
			.ovh;
				
			> li:last-child {
				.bdb(0);
			}
			
			li {
				margin:0 0 20px;
				padding:0 0 20px;
				.bdb;
				.ovh;
				
				&:before {
					content:none;
				}
				
				a {
					display:block;
					float:none;
				
					&.remove {
						display:block;
						width:15px;
						margin-left:10px;
						.tac;
						.fr;
					}
				}
				
				img {
					width:60px;
					height:60px;
					margin-right:15px;
					.fl;
				}
				
				.quantity {
					position:relative;
					.ovh;
				}
			}
		}
		
		.total {
			padding:0 0 10px;
			position:relative;
			.ovh;
			
			strong {
				margin-right:5px;
			}
		}
		
		.buttons {
			margin:0 -1%;
			padding:0;
			position:relative;
			.ovh;
			
			.button {
				width:48%;
				min-width:inherit;
				margin:0 1%;
				padding:5px 20px;
				.fl;
			}
		}
	}
}

.widget_price_filter {
	.price_slider_wrapper {
		.price_slider {
			height:5px;
			margin:0 0 25px;
			position:relative;
			.bd;
			
			.ui-slider-range {
				height:100%;
				position:absolute;
				top:0;
			}
			
			.ui-slider-handle {
				display:block;
				width:13px;
				height:13px;
				margin-left:-1px;
				position:absolute;
				top:-5px;
				z-index:2;
				cursor:pointer;
				.bdrs(50%);
				
				&:last-child {
					margin-left:-12px;
				}
			}
		}
		
		.price_slider_amount {
			position:relative;
			.ovh;
			
			.button {
				min-width:75px;
				padding:5px 20px;
				.fr;
			}
			
			.price_label {
				padding:6px 15px 6px 0;
				position:relative;
				.ovh;
			}
		}
	}
}

.widget_product_categories {
	.children {
		padding-top:10px;
		margin:0;
	}
	
	.product-categories {
		padding-left:0;
	}
	
	.dropdown_product_cat {
		padding:9px 20px 9px 10px;
	}
}

.product_list_widget {
	list-style:none;
	margin:0;
	padding:0;
	position:relative;
	.ovh;
	
	li {
		margin:0 0 15px;
		padding:0 0 15px;
		position:relative;
		.bdb;
		.ovh;
		
		&:before {
			content:none;
		}
		
		&:last-child {
			margin:0;
		}
		
		> a {
			display:block;
		}
		
		img {
			width:60px;
			height:60px;
			margin:0 15px 0 0;
			.fl;
		}
		
		.cmsms_star_rating {
			margin:0 0 5px;
		}
		
		del {
			margin-right:5px;
		}
		
		ins {
			text-decoration:none;
		}
		
		.star-rating {
			.dn;
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	8. Shortcodes */
/*-------------------------------------------------------------------------*/

.cmsms_products_shortcode, 
.cmsms_selected_products_shortcode {
	position:relative;
	.ovh;
	
	.cmsms_products {
		margin:0 -@col_mar;
		padding:0;
		overflow:hidden;
		position:relative;
		
		.product {
			width:round(100% - (@col_mar * 2), 2);
			margin:0 @col_mar;
			padding:0;
			position:relative;
			clear:none;
			.ovh;
			.fl;
			
			&:before {
				content:none;
			}
		}
	}
	
	.columns-4 {
		.cmsms_products {
			.product {
				width:round((100% / 4) - (@col_mar * 2), 2);
				
				&:nth-child(4n+1) {
					clear:left;
				}
			}
		}
	}
	
	.columns-3 {
		.cmsms_products {
			.product {
				width:round((100% / 3) - (@col_mar * 2), 2);
				
				&:nth-child(3n+1) {
					clear:left;
				}
			}
		}
	}
	
	.columns-2 {
		.cmsms_products {
			.product {
				width:round((100% / 2) - (@col_mar * 2), 2);
				
				&:nth-child(2n+1) {
					clear:left;
				}
			}
		}
	}
	
	.columns-1 {
		.cmsms_products {
			.product {
				float:none;
				.cl;
			}
		}
	}
}

.track_order,
.login {
	margin:0 -@col_mar;
	position:relative;
	.ovh;
	
	&:after {
		.cl_after;
	}
	
	> * {
		margin-left:@col_mar;
		margin-right:@col_mar;
		.ovh;
		
		> * {
			display:block;
		}
		
		.button {
			margin-bottom:10px;
			padding:8px 15px;
			.bd;
		}
		
		label {
			padding-bottom:5px;
		}
	}
}



/*-------------------------------------------------------------------------*/
/*	9.	CSS3 Animations	*/
/*-------------------------------------------------------------------------*/

html.csstransitions {
	.cmsms_star_rating .cmsms_star {
		.trans(~'color .3s ease-in-out');
	}
	
	.cmsms_star_rating .cmsms_star,
	.product .cmsms_tabs.tabs_mode_tab.cmsms_woo_tabs .cmsms_tabs_list .cmsms_tabs_list_item > a,
	.cmsms_products .product .product_outer .cmsms_product_footer .cmsms_product_footer_inner a,
	.cmsms_single_product .cmsms_product_right_column .cart .single_add_to_cart_button,
	.cmsms_woo_wrap_result .woocommerce-message .button.wc-forward, 
	.shop_table td.actions .button,
	.cmsms_dynamic_cart .cmsms_dynamic_cart_button,
	.cmsms_dynamic_cart .cmsms_dynamic_cart_button:before,
	.shop_table .cart_item .product-remove > a,
	.shipping_calculator .shipping-calculator-form .button,
	.checkout_coupon .form-row .button,
	.checkout #order_review #payment .place-order .button,
	.track_order .button {
		.trans(~'border-color .3s ease-in-out, color .3s ease-in-out, background-color .3s ease-in-out');
	}
	
	.cmsms_products .product .product_outer .cmsms_product_footer .cmsms_product_footer_inner a:before {
		.trans(~'border-color .2s ease-in-out, color .2s ease-in-out, background-color .2s ease-in-out');
	}
	
	.cmsms_dynamic_cart .widget_shopping_cart_content .buttons .button {
		.trans(~'border-color .3s ease-in-out, background-color .3s ease-in-out');
	}
	
	.product .cmsms_tabs.tabs_mode_tab.cmsms_woo_tabs .cmsms_tabs_list .cmsms_tabs_list_item > a > span {
		.trans(~'color .3s ease-in-out');
	}
	
	.widget_price_filter .price_slider_wrapper .price_slider .ui-slider-handle,
	.cmsms_products .product .product_outer .product_inner .cmsms_product_footer .cmsms_product_footer_inner:before {
		.trans(~'background-color .3s ease-in-out');
	}
	
	.cmsms_products .product .product_outer .product_inner .cmsms_product_header a,
	.product .cmsms_tabs.tabs_mode_tab.cmsms_woo_tabs .cmsms_tabs_list .cmsms_tabs_list_item,
	.shop_table .cart_item .product-name > a,
	.woocommerce .shop_table.order_details tbody .product-name > a {
		.trans(~'border-color .3s ease-in-out');
	}
	
	.cmsms_products .product .product_outer .product_inner .cmsms_product_img img {
		.trans(~'all .3s ease-in-out');
	}
	
	.cmsms_dynamic_cart .widget_shopping_cart_content {
		.trans(~'opacity .3s ease-in-out, margin .3s ease-in-out, height .3s ease-in-out, visibility .3s ease-in-out');
	}
	
	.cmsms_dynamic_cart {
		.trans(~'opacity .3s ease-in-out');
	}
	
	.cmsms_product_thumbs .cmsms_product_thumb:before {
		.trans(~'opacity .3s ease-in-out,  border-color .3s ease-in-out');
	}

	.cmsms_products .product .product_outer .cmsms_product_footer .cmsms_product_footer_inner a.cmsms_details_button > span,
	.cmsms_products .product .product_outer .cmsms_product_footer .cmsms_product_footer_inner a.cmsms_add_to_cart_button > span,
	.cmsms_products .product .product_outer .cmsms_product_cont .cmsms_product_footer .cmsms_product_footer_inner a.added_to_cart {
		.trans(~'opacity .3s ease-in-out, width .3s ease-in-out, padding .3s ease-in-out, color .3s ease-in-out, background-color .3s ease-in-out, left .3s ease-in-out');
	}
	
	.cmsms_products .product .product_outer .cmsms_product_footer .cmsms_product_footer_inner a.cmsms_add_to_cart_button.loading:before {
		.trans(~'color .0s ease-in-out');
	}
	
	.cmsms_dynamic_cart .widget_shopping_cart_content .cart_list li a.remove {
		.trans(~'width .3s ease-in-out, margin .3s ease-in-out, color .3s ease-in-out, opacity .3s ease-in-out');
	}
}