* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

body,
html {
    -webkit-text-size-adjust: none;
}

body {
    font: 16px/20px Arial, Verdana, sans-serif;
    padding: 0;
    min-width: 320px;
}
.h-wrapper {
    position: relative;
    width: 100%;
    max-width: 1170px;
    margin: 0 auto;
}
.b-header {
    position: fixed;
    top: 0;
    z-index: 2;
    width: 100%;

	.wrapper-header {
		padding: 20px 0;
		background-color: #eee;
		transition: padding 0.3s;
	}

	&.fixed-header {
		background-color: #eee;

		.wrapper-header{
			padding: 5px 0;

			.b-select-lang {
				position: relative;
				right: auto;
				top: auto;
			}
		}
	}

	.wrapper-logo  {
		text-decoration: none;
		color: #000;
		font: bold 16px/16px Arial;
		margin: 0 0 0 20px;

		.icon {
			display: inline-block;
			vertical-align: middle;
			font-size: 40px;
			line-height: 40px;
			margin-right: 10px;
		}
		.text {
			display: inline-block;
			vertical-align: middle;
		}
	}
	.wrapper-cart {
		margin-right: 10px;
		text-align: right;
		display: inline-block;

		.result-price {
			display: inline-block;
			vertical-align: middle;
			font: 30px/30px Arial;
			margin-left: 10px;
		}
		.cart-icon {
			position: relative;
			width: 50px;
			height: 40px;
			font-size: 40px;
			color: #555555;
			transition: color 0.3s, opacity 0.3s;
			display: inline-block;
			vertical-align: middle;

			&:before {
				position: absolute;
				top: 0;
				left: 0;
			}

			&:hover {
				color: #939393;
			}
		}

		.count {
			position: absolute;
			top: 0;
			right: 4px;
			color: #fff;
			background-color: #69A74F;
			border-radius: 50%;
			z-index: 2;
			height: 20px;
			width: 20px;
			font: 12px/21px Arial;
			text-align: center;
			transition: transform 0.3s;
		}
	}
}


.b-result-price {
    padding: 0 0 0 10px;
    display: inline-block;

	.result-price {
		display: inline-block;
		vertical-align: middle;
		font: 30px/30px Arial;
		margin-left: 10px;
	}
	.cart-icon {
		position: relative;
		width: 50px;
		height: 40px;
		font-size: 40px;
		color: #555555;
		transition: color 0.3s, opacity 0.3s;
		display: inline-block;
		vertical-align: middle;

		&:before {
			position: absolute;
			top: 0;
			left: 0;
		}

		&:hover {
			color: #939393;
		}
	}
	.count {
		position: absolute;
		top: 0;
		right: 4px;
		color: #fff;
		background-color: #69A74F;
		border-radius: 50%;
		height: 20px;
		width: 20px;
		font: 12px/21px Arial;
		text-align: center;
		transition: transform 0.3s;

		&.big {
			height: 30px;
			width: 30px;
			top: -5px;
			right: 0;
			line-height: 30px
		}
	}

	.wrapper-icon {
		position: relative;
		color: #555;

		&:hover {
			text-decoration: none;
			color: #555;
		}
	}
}

.b-select-lang {
    /*position: absolute;*/
    /*right: 27px;*/
    /*top: -19px;*/
    display: inline-block;
    vertical-align: middle;

	.item-link {
		text-decoration: underline;
		font-size: 12px;
		color: #000;

		&:hover {
			text-decoration: none;
		}

		.active {
			text-decoration: none;
			opacity: 0.8;
			font-weight: bold;
			cursor: default;
		}
	}
}
.b-content {
   /*padding-top: 80px;*/
	.error-get-coord {
		padding: 30px 0 0;
		text-align: center;
		color: red;
	}
	.status-order {
		text-align: center;
		padding: 25px 0 0;
		margin-bottom: -15px;
		font-size: 17px;

		.big {
			font-weight: bold;
			font-size: 18px;

		}
	}
}
/* Index page  */
.b-index-select {
	.title {
		margin: 50px 0;
	}

	.button-main {
		width: 200px;
		max-width: 100%;
		height: 200px;
		display: table;
		margin: 0 auto;
		text-align: center;
		background-color: #EEEEEE;
		transition: background 0.5s;

		&:hover {
			background-color: #c1c1c1;
			text-decoration: none;
		}
		.text {
			display: table-cell;
			height: 100%;
			vertical-align: middle;
			color: #000;
		}
	}
}

/* Select forms  */
.b-top-select {
    margin: 20px 0;

	.button-main {
		width: 100%;
		max-width: 100%;
		padding: 5px 20px;
		display: table;
		margin: 0 auto;
		text-align: center;
		background-color: #eee;
		color: #000;
		transition: background 0.5s;

		&:hover {
			background-color: #c1c1c1;
			color: #000;
			text-decoration: none;
		}
	}
}

.b-page-form {
    margin: 0 0 50px;

	.hidden-map {
		height: 0;
		overflow: hidden;
	}
	.show-map {
		height: auto;
	}
	.title {
		margin: 20px 0 40px;
	}
	.star {
		color: red;
	}
	.radio-item {
		display: inline-block;
		vertical-align: middle;
		padding-right: 10px;

		&:last-child {
			padding-right: 0;
		}
	}
	.text-area {
		height: 100px;
		min-height: 100px;
		max-height: 200px;
		max-width: 100%;
		min-width: 100%;
	}
	label {
		margin-bottom: 0;
		margin-top: 5px;
	}
	.h-readonly {
		opacity: 0.6;

		&:focus {
			border-color: #b2b2b2;
		}
	}
}

/* catalog */
.b-info-restaurant {
    margin-top: 20px;
    margin-bottom: 15px;
    min-height: 62px;

	.restaurant-wrapper {
		margin-bottom: 15px;
		float: right;
		width: 70%;
		width: calc(100% - 50px);
		width: -moz-calc(100% - 50px);
		width: -webkit-calc(100% - 50px);
		text-align: right;

		.name {
			font-size: 24px;
		}
	}

	.item-wrapper {
		border-right: 1px solid #ccc;
		margin: 0 10px 15px 0;
		padding: 0 15px 0 15px;
		/*display: inline-block;*/
		display: table-cell;
		vertical-align: top;

		.time {
			font-size: 16px;
		}
		.status {
			font-weight: bold;
		}
		.status-open {
			color: green;
		}
		.status-close {
			color: red;
		}
		&:last-child {
			border-right: none;
		}
		&:first-child {
			padding-left: 0;
		}
	}
	.wrapper-logo  {
		text-decoration: none;
		color: #000;
		font: bold 16px/16px Arial;
		margin: 0;
		float: left;

		.icon {
			display: inline-block;
			vertical-align: middle;
			font-size: 40px;
			line-height: 40px;
			margin-right: 10px;
		}
	}
}

.b-catalog {
	margin: 0 0 50px;

	.sidebar {
		background-color: #eee;
		margin-bottom: 30px;
	}
}

.b-menu  {
    padding: 30px 10px;

	.items {
		.link {
			padding: 3px 0 3px 25px;
			position: relative;
			font-size: 16px;
			color: #000;
			display: block;

			.items  {
				padding-left: 15px;
			}

			&:focus {
				text-decoration: none;
			}
		}

		.parent:before {
			content: "";
			display: block;
			width: 0;
			height: 0;
			position: absolute;
			left: 9px;
			top: 7px;
			border: 6px solid transparent;
			border-left: 7px solid #000;
		}

		.items {
			display: none;
		}
		.current {
			font-weight: bold;
		}
		.child:before  {
			content: "";
			display: block;
			height: 6px;
			width: 6px;
			border-radius: 50%;
			background-color: #000;
			top: 50%;
			margin-top: -3px;
			left: 10px;
			position: absolute;
		}
	}
	.show-category {
		& > .parent:before {
			left: 7px;
			top: 10px;
			border: 6px solid transparent;
			border-top: 7px solid #000;
		}

		& > .items {
			display: block;
		}
	}
}

/*.b-menu .items .parent.active:before {*/
    /*left: 7px;*/
    /*top: 10px;*/
    /*border: 6px solid transparent;*/
    /*border-top: 7px solid #000;*/
/*}*/


.b-pay-result {
    padding-top: 50px;

	.title {
		font-size: 20px;
		padding-bottom: 20px;
	}
	.item {
		padding-bottom: 5px;
	}
	.error {
		color: red;
	}
	.success {
		color: green;
	}
}


/*.b-menu .items .item.active > .link:before  {*/
    /*content: "\f07c";*/
/*}*/

.b-group {
    margin-bottom: 20px;

	.title-group {
		margin-top: 0;
		padding-bottom: 5px;
		border-bottom: 1px solid #ccc;
	}

	.item-group {
		background-color: #eee;
		padding: 20px 15px 0;
		margin-bottom: 10px;

		.row-main-info {
			padding-bottom: 20px;
		}
		.image-wrapper {
			margin-bottom: 10px;
			position: relative;

			.ticket {
				position: absolute;
				top: 0;
				left: 0;
				padding: 5px 15px;
			}
			.action {
				background: red;
				color: #fff;
				font: 16px/16px Arial;
			}
			.new {
				background-color: #FF9900;
				color: #fff;
				font: 16px/16px Arial;
			}
			img {
				max-height: 100%;
				max-width: 100%;
				display: block;
			}
		}
		.title-wrapper {
			.title-product {
				font: 20px/20px Arial;
				margin-bottom: 10px;
			}
			.description {
				font: 14px/16px Arial;
			}
		}
		.count-wrapper {
			margin: 35px -5px 0;
		}
		.error-adding {
			color: red;
			padding-bottom: 8px;
		}

		.hide-row {
			display: none;
			border-top: 2px dashed #DDDDDD;

			.col-more-info {
				padding-top: 15px;
				margin-top: 5px;
				margin-bottom: 10px;
			}

			.col-more-info-right {
				border-left: 2px dashed #DDDDDD;
			}
			.col-more-info-left {
				border-right: 2px dashed #DDDDDD;
			}
			.sub-title-wrapper {
				margin: 10px 0 10px;
				overflow: hidden;
			}
			.sub-title {

			}
			.sub-description {
				font-size: 14px;
			}
			.item-sub-product {
				display: block;
				vertical-align: middle;
				margin-bottom: 7px;

				.title-param {
					margin-right: 6px;
				}

				.wrapper-select {
					padding-left: 0;
				}
			}
			.title-param-group {
				margin: 0 0 10px 0;
				font-size: 16px;
			}

			.title-param,
			.wrapper-select {
				display: inline-block;
				vertical-align: middle;
			}


			.sub-products {
				position: relative;
				/*padding-right: 15px;*/
				border-bottom: 2px dashed #DDDDDD;
				padding-bottom: 15px;
				margin-top: 15px;

				.no-right-border {
					margin-right: 0;
				}

				&:first-child {
					margin-top: 0;
				}
				&:last-child {
					border-bottom: none;
					padding-bottom: 0;
				}
				.border-item {
					padding-bottom: 5px;
					margin-bottom: 5px;
					border-bottom: 1px solid #ccc;
					height: 32px;
				}

				.row-item-last .border-item,
				.row-item:last-child .border-item {
					border-bottom: none;
				}
				.row-item .text {
					margin: 0;
					padding-top: 5px;
					font-size: 14px;
					line-height: 16px;
				}
			}
			.min-group-val-error .input {
				border-color: red !important;
			}
		}

		.more-info,
		.button-to-cart {
			color: #000;
			background-color: #fff;
			border: 1px solid #000;
			box-shadow: 0 1px 3px rgba(0,0,0,0.3);

			&:hover {
				background-color: #eee;
			}
		}

		.button-to-cart {
			&.in-cart:hover,
			&.in-cart {
				background-color: #c0db88;
			}


		}
	}

	.price-wrapper {
		margin: 35px 0 0;

		.price {
			font-size: 34px;
			line-height: 34px;
			margin-bottom: 10px;
			display: block;
		}
	}

	.food-all {
		.title {
			font-size: 16px;
			margin-bottom: 5px;
		}

		.item {
			font-size: 14px;
		}
	}

	.footer-row {
		background-color: #ddd;
		padding: 10px 0;
	}
}

.wrapper-inc {
    text-align: center;

	& .input-count,
	& .button-inc {
		display: inline-block;
		vertical-align: middle;
		text-decoration: none !important;

		width: 40px;
		height: 26px;
		padding: 0;
		text-align: center;
		border: 1px solid #ccc;
		box-sizing: border-box;
	}

	.button-inc {
		width: 26px;
		height: 26px;
		font: 20px/24px Arial;
		text-align: center;
		border: 1px solid #ccc;
		color: #000;
		background-color: #fff;
		transition: background 0.3s;

		/* убираем выделение при повторном клике */
		user-select: none;
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;

		&.disabled {
			background-color: #eee;
			opacity: 0.6;
			cursor: default;
		}

		&:hover {
			text-decoration: none;
			background-color: #eee;
		}
	}
}
.button-inc {
	&:focus,
	&::selection {
		text-decoration: none !important;
		outline: none;
	}
}


/* Cart */

.b-cart {
    margin: 10px 0 50px;

	.hidden-map {
		height: 0;
		overflow: hidden;
	}
	.show-map {
		height: auto;
	}

	.error-final-cart {
		padding-bottom: 15px;
	}

	.item-group {
		.delete-product {
			margin: 10px 0;
			display: inline-block;
			color: #5F7EB6;
		}
		.hide-row {
			display: block;
		}
	}

	.result-info-cart {
		margin-bottom: 10px;

		.info-footer {
			background-color: #eee;
			padding: 10px 15px;
		}
		.value {
			width: 120px;
			display: inline-block;
		}
		.link-catalog {
			margin-right: 20px;
		}
		.button-result-form {
			.arrow {
				font-size: 15px;
				display: inline-block;
				padding-left: 5px;
			}
		}
		.arrow-left {
			padding-right: 5px;
		}
	}
	.title-cart {
		margin-top: 10px;
		margin-bottom: 25px;

		.title {
			margin: 0;
			font-size: 22px;
		}
	}

	.b-group .row-bottom-cart {
		/*border-bottom: 5px solid #ddd;*/
		padding-bottom: 15px;
		margin-bottom: 25px;
	}
	.success-message {
		font-size: 20px;
		line-height: 24px;
		padding: 30px 0 0;

		.success {
			padding-bottom: 10px;
		}

		.success,
		&.success {
			color: green;
		}
		.wrapper-price {
			padding: 20px 0 0;
		}
	}
	.more-order {
		color: #222222;
		font-size: 18px;
		margin: 10px 0;
		text-decoration: underline;
		display: inline-block;

		&:hover {
			text-decoration: none;
		}
	}
	.error-message-block {
		font-size: 16px;
		line-height: 24px;
		padding: 30px 0 0;

		.title {
			color: red;
			font-size: 20px;
			padding-bottom: 10px;
		}
		.desc {
			padding-bottom: 10px;
		}
		.more-order {
			margin-top: 30px;
			display: inline-block;
			color: #000;
		}
	}
	.b-page-form .disabled-btn {
		cursor: default;
		opacity: 0.7;
	}

}

.b-go-pay {
    padding-top: 50px;
}

/* Сообщение */

.b-message {
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: #c0db88;
    padding: 10px 0;
    transition: margin 0.3s;
    margin-bottom: -150px;
    left: 0;
    z-index: 100;

	&.show-message {
		margin-bottom: 0;
	}
	.close-message {
		color: #fff;
		font-size: 25px;

		&:hover {
			text-decoration: none;
			opacity: 0.8;
		}
	}
	.message {
		padding: 10px 0;
	}
	.icon-close {
		color: #fff;
		position: absolute;
		top: 10px;
		right: 10px;
		border-radius: 50%;
		border: 2px solid #fff;
		height: 30px;
		width: 30px;
		box-sizing: border-box;
		line-height: 26px;
		text-align: center;
		font-size: 16px;
		transition: opacity 0.3s;

		&:hover {
			text-decoration: none;
			opacity: 0.5;
		}
	}
}

.b-modal {
    background: rgba(0,0,0,0.2);

	.modal-footer .btn {
		margin-left: 10px;
	}
	.modal-body {
		.detail-error {
			padding-top: 15px;

			.body-error {
				padding-top: 10px;
			}
		}
	}
}

.m-modal-rules {
	.modal-dialog {
		height: 90%;
		max-height: 90%;
		width: 90%;
		max-width: 900px;
	}
	.item-table{
		display: table;
		height: 100%;
		width: 100%;
	}
	.item-row {
		display: table-row;
	}
	.item-cell {
		display: table-cell;
		position: relative;
	}
	.wrapper-scroll {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		overflow-y: auto;
		padding: 20px;
		box-sizing: border-box;
	}
	.wrapper-modal-footer {
		height: 71px;
	}
	.wrapper-modal-header {
		height: 57px;
	}
	.modal-footer {
		height: 50px;
	}
}


.b-map {
    width: 100%;
    height: 350px;
    position: relative;
    background-color: #F4F4F4;
}
.b-load {
    position: relative;
    padding-top: 60px;
    height: 70px;
    box-sizing: border-box;
}
.m-load-catalog {
    height: 100px;
    padding-top: 70px;

	.load-circle {
		margin-top: 0;
		top: 15px;
	}
}
.map-title {
    margin: 30px 0 20px;
}
.row-button-map {
    margin-top: 20px;
}
.b-load .load-circle,
.support-load:before {
    content: "";
    width: 50px;
    height: 50px;
    margin-top: -30px;
    margin-left: -30px;
    border: 8px solid transparent;
    border-top-color: #636363;
    border-bottom-color: #636363;
    position: absolute;
    left: 50%;
    top: 50%;
    box-sizing: border-box;
    border-radius: 50%;
    -webkit-animation: linear rotate-animate 5s infinite;
    -moz-animation: linear rotate-animate 5s infinite;
    -o-animation: linear rotate-animate 5s infinite;
    animation: linear rotate-animate 5s infinite;
}

.angular-google-map-container { height: 400px; }
.wrapper-check-rules .show-rules {

}


.payment-test {
	padding-bottom: 20px;
	margin-bottom: 35px;
	border-bottom: 1px solid #ccc;

	&:last-child {
		margin-bottom: 0;
		border-bottom: none;
	}
}
.pay-online {
	margin-top: 60px;
	background: rgba(249, 247, 247, 0.4);
	border: 1px solid #ccc;
	padding: 30px 0 20px;

	.title-top {
		margin-bottom: 30px;
	}
	.message {
		margin: 20px 0;

		.error {
			color: red;
		}
		.success {
			color: green;
		}
	}
	.form-group {
		font-size: 16px;
		line-height: 18px;
	}
	.warning {
		padding: 5px 20px 30px;
		color: red;
	}
}