.jb-booking {
	max-width: 1280px;
	width: 100%;

	margin: 0 auto;
	display: table;

	text-transform: uppercase;

	color: #000;

	position: relative;

}

/* #main needed for selector precedence */
#main .jb-booking h1, #main .jb-booking h2, #main .jb-booking h3 {
	font-family: "Open Sans", Arial, Helvetica, sans-serif;
	font-weight: 600;
}


.jb-booking .jb-booking-cart,
.jb-booking .jb-booking-content {
	padding: 6px 12px 6px 12px;
}




@media (min-width: 1130px) {
	.jb-booking .jb-booking-cart {
		display: table-cell;
		vertical-align: top;

		padding-top: 65px;

		min-width: 480px;
	}



	.jb-booking .jb-booking-content {
		display: table-cell;
		vertical-align: top;

		width: 720px;
		min-width: 480px;

		padding-right: 40px;
	}
}



.jb-booking .jb-booking-cart:after {
	content: "";
	display: table;
	clear: both;
}

.jb-booking .jb-booking-content:after {
	content: "";
	display: table;
	clear: both;
}

.jb-booking .jb-booking-content label {
	font-size: 14px;
}

.jb-booking .jb-booking-content fieldset {
	margin-bottom: 2em;
}

.jb-booking .jb-booking-content fieldset fieldset {
	margin-bottom: 0;
	padding-top: 9px;
	padding-bottom: 6px;
}

.jb-booking .jb-booking-content form fieldset legend {
	padding-left: 0;
}

.jb-booking .jb-booking-content form > fieldset > legend {
	/* needed for bold */
	font-weight: 600;

	font-size: 14px;
	margin-bottom: 0.5em;
}


.jb-booking .jb-booking-content fieldset > div {
	/* use to indent fieldset fields */
	/* margin-left: 12px; */
	margin-bottom: 6px;
	display: table;
	table-layout: fixed;
	width: 100%;
}

.jb-booking .jb-booking-content form > fieldset > div > label {
	width: 160px;
	display: table-cell;
	vertical-align: top;
	padding-top: 9px;
}

.jb-booking .jb-booking-content fieldset fieldset > div {
	margin-left: 0;
	float: left;
	margin-bottom: 0;
	width: auto;
}



.jb-booking .jb-booking-content fieldset fieldset legend {
	font-size: 14px;
	float: left;
	font-weight: normal;
	padding: 0;
	width: 160px;
	margin-bottom: 0;

}


.jb-booking .jb-booking-content fieldset input[type=radio] ~ label {
	margin-right: 1em;
	vertical-align: middle;
}

.jb-booking .jb-booking-content input {
	padding-left: 3px;
	padding-right: 3px;
}

.jb-booking .jb-booking-content input,
.jb-booking .jb-booking-content select,
.jb-booking .jb-booking-content option
{
	font-size: 14px;
}


.jb-booking .jb-booking-content input[type=text],
.jb-booking .jb-booking-content input[type=time],
.jb-booking .jb-booking-content input[type=tel],
.jb-booking .jb-booking-content input[type=email],
.jb-booking .jb-booking-content input[type=date],
.jb-booking .jb-booking-content textarea,
.jb-booking .jb-booking-content select {
	padding: 8px 15px;
	color: #000;
}


.jb-booking .jb-booking-content input[type=text],
.jb-booking .jb-booking-content input[type=time],
.jb-booking .jb-booking-content input[type=tel],
.jb-booking .jb-booking-content input[type=email],
.jb-booking .jb-booking-content input[type=date],
.jb-booking .jb-booking-content textarea,
.jb-booking .jb-booking-content .selectwrapper {
	display: table-cell;
	width: 100%;
	/* copy theme styles to other input types */
	/*
	-webkit-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.1);
	box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.1);
	*/
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
	border: 1px solid rgb(210, 210, 210);
	height: 40px;
}

.jb-booking .jb-booking-content textarea {
	height: 80px;
	/* limit browsers with textarea resizing */
	max-width: 100%;
}

.jb-booking .jb-booking-content .jb-booking-error input[type=text],
.jb-booking .jb-booking-content .jb-booking-error input[type=time],
.jb-booking .jb-booking-content .jb-booking-error input[type=tel],
.jb-booking .jb-booking-content .jb-booking-error input[type=email],
.jb-booking .jb-booking-content .jb-booking-error input[type=date],
.jb-booking .jb-booking-content .jb-booking-error textarea,
.jb-booking .jb-booking-content .jb-booking-error .selectwrapper {
	/*
	-webkit-box-shadow: inset 0 1px 5px rgba(255, 0, 0, 0.1);
	-moz-box-shadow: inset 0 1px 5px rgba(255, 0, 0, 0.1);
	box-shadow: inset 0 1px 5px rgba(255, 0, 0, 0.1);
	*/
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
	border-color: #F00;

}

.jb-booking .jb-booking-content select {
	width: 100%;
	height: 38px;
	margin: 0;
	border: 0;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
	background-color: transparent;
	text-indent: 10px;
}

.jb-booking .jb-booking-content fieldset > div > input[type=checkbox] {
	margin-top: 13px;
}

.jb-booking .jb-booking-content fieldset fieldset > div > input[type=checkbox] {
	margin-top: 0;
}

.jb-booking .jb-booking-content .jb-booking-input-col {
	margin-top: 6px;
}

.jb-booking .jb-booking-content fieldset fieldset .jb-booking-input-col {
	margin-top: 0;
}

.jb-booking .jb-booking-content .jb-booking-input-col input {
	margin-left: 0;
}

.jb-booking .jb-booking-content .jb-booking-input-col small {
	font-size: 12px;
}


.jb-booking .jb-booking-cart-list {
	padding: 0;
	margin: 0;
}

.jb-booking .jb-booking-cart-list li {
	list-style-type: none;
	padding: 0;
	margin: 0;
}

div.jb-booking-error,
div.jb-booking-error-list, div.jb-booking-error-list a {
	color: #FF0000;
	font-size: 14px;
}

div.jb-booking-error-list {
	margin-bottom: 2em;
}

div.jb-booking-error {
	padding-bottom: 6px;
}

div.jb-booking-error *[role=alert] {
	padding: 6px 0;
}

div.jb-booking-error

input.jb-booking-error {
	border-color: #FF0000;
	border-style: solid;
}

.jb-booking-guest a {
	text-decoration: underline;
}

.jb-booking-guest img {
	vertical-align: baseline;
}


.jb-booking button[type=submit] {
	cursor: pointer;
}

.jb-booking label > a {
	font-weight: bold;
	text-decoration: underline;
}

/*
Styling according to design
*/

/* ----- Timeline ---- */
.jb-booking nav {
	width: 100%;
	text-align: center;
	margin-bottom: 30px;
}


.jb-booking nav ul {
	padding: 0;
	margin: 0;
}



.jb-booking nav li {
	list-style-type: none;
	display: inline;
}

.jb-booking nav li + li:before {
	content: ' ';
	display: inline-block;
	height: 1px;
	width: 54px;
	background-color: #000;
}



.jb-booking nav li > a,  .jb-booking nav li > span {
	display: inline-block;
	vertical-align: top;
	height: 35px;
	padding: 6px 0 0 0;
	box-sizing: border-box;
	text-align: center;
	width: 96px;
	font-size: 12px;


	background-color: #000;
	color: #EFEFEF;
}

.jb-booking nav li .active {
	background-color: #4a8590;
}


@media (min-width: 1158px) and (max-width: 1268px) {
	.jb-booking nav li + li:before {
		width: 5%;
	}
}

@media (min-width: 1130px) and (max-width: 1157px) {
	.jb-booking nav li + li:before {
		width: 5px;
	}
}

@media (max-width: 497px) {
	.jb-booking nav li {
		display: block;
	}

	.jb-booking nav li > a,  .jb-booking nav li > span {
		display: block;
		width: 100%;
		margin-bottom: 5px;
	}

	.jb-booking nav li + li:before {
		display: none;
	}
}

/* ---- Headline --- */
.jb-booking .jb-booking-content header {
	padding-bottom: 36px;
}

.jb-booking .jb-booking-content header:after	 {
	content: "";
	display: table;
	clear: both;
}

.jb-booking h2 {
	position: relative;
	margin: 0;
	padding: 0;
}

.jb-booking .jb-booking-content h2 {
	font-size: 18px !important;
}

.jb-booking .jb-booking-content.jb-booking-step1 h2 {
	width: 160px;
	float: left;
}

.jb-booking h2:before {
	content: '//';
	color: #4a8590;
	position: absolute;
	left: -20px;
	top: 0;
}

.jb-booking .jb-booking-content header small {
	float: left;
	padding-top: 2px;
	font-size: 12px;
}

.jb-booking .jb-booking-content header small > a {
	/* needed for bold */
	font-weight: 600;
}

.jb-booking .jb-booking-content h3 {
	font-size: 14px;
	/* needed for bold */
	font-weight: 600;

	margin: 0 0 2em 0;
	padding: 0;
}

/* submit button, back button */
.jb-booking .jb-booking-content > form button[type=submit],
.jb-booking .jb-booking-content .jb-booking-previous-step {
	display: block;

	min-width: 146px;
	min-height: 30px;
	padding: 3px 12px 3px 12px;
	text-align: center;
	background-color: #4a8590;
	color: #EFEFEF;
	font-size: 14px;
	text-transform: uppercase;
}



.jb-booking .jb-booking-content > form button[type=submit] {
	float: right;
	border: none;
}

.jb-booking .jb-booking-content .jb-booking-previous-step {
	float: left;
}

.jb-booking .jb-booking-content.jb-booking-step1 > form button[type=submit] {
	float: none;
	margin: 0 auto;
}

/* --- required field --- */
.required > label:after,
.required > fieldset > legend:after {
	content: ' *';
}


/* --- cart styling --- */
.jb-booking .jb-booking-cart {
	font-size: 12px;
	line-height: 18px;
}

.jb-booking .jb-booking-cart h2 {
	font-size: 14px !important;
	margin-bottom: 24px;
}

.jb-booking .jb-booking-cart table caption {
	/* needed for bold */
	font-weight: 600;

	text-align: left;
}

.jb-booking .jb-booking-cart table {
	table-layout: fixed;
	width: 100%;
}

.jb-booking .jb-booking-table-wrap {
	padding: 20px 0;
}

.jb-booking .jb-booking-cart .jb-booking-cart-wrap > div > table > tbody > tr > th {
	width: 120px;
}

.jb-booking .jb-booking-cart .jb-booking-cart-wrap > div > table > tbody > tr > th > small {
	font-size: 8px;
}

.jb-booking .jb-booking-cart .jb-booking-cart-wrap > div > table > caption {
	padding: 0 0 20px 0;
}

.jb-booking .jb-booking-cart .jb-booking-guest {
	width: 100%;
}



.jb-booking .jb-booking-cart table th {
	min-width: 0;
	font-weight: normal;
}

.jb-booking .jb-booking-cart table table th {
	max-width: 180px;
	padding-right: 6px;
}

.jb-booking .jb-booking-cart table th,
.jb-booking .jb-booking-cart table td {
	vertical-align: top;
}


.jb-booking .jb-booking-guest-header {
	display: table;
	width: 100%;
	table-layout: fixed;
	margin-bottom: 2em;
}

.jb-booking .jb-booking-guest-header-action {
	display: table-cell;
}

.jb-booking .jb-booking-guest-header-action button {
	display: inline-block;
	text-align: center;
	background-color: #4a8590;
	color: #EFEFEF;
	border: none;

	margin-right: 6px;
}

.jb-booking .jb-booking-content .jb-booking-guest-header h3 {
	display: table-cell;
	width: 160px;
	margin: 0;
}

/* --- total table --- */
.jb-booking .jb-booking-cart .jb-booking-total-wrap {
	background-color: #4a8590;
	color: #EFEFEF;
	margin-left: -30px;
	margin-top: 40px;
	padding: 20px 0 20px 30px;
}


.jb-booking .jb-booking-cart .jb-booking-total th {
	width: 120px;
}

.jb-booking .jb-booking-cart .jb-booking-total td + th,
.jb-booking .jb-booking-cart .jb-booking-total th + th{
	width: 180px;
}

/* --- page 4 --- */
.jb-booking-add-guest {
	display: table-cell;
	vertical-align: middle;
	height: 44px;
	font-size: 16px;
	color: #EFEFEF;
	background-color: #4a8590;
	text-align: center;
}

a.jb-booking-add-guest:hover, a.jb-booking-add-guest:active, a.jb-booking-add-guest:visited {
	color: #EFEFEF;
}


.jb-booking .jb-booking-content.jb-booking-step4 > form button[type=submit] {
	font-size: 16px;
	padding: 10px 12px;
	margin-bottom: 6px;
}


/* --- thanks page --- */
.jb-booking.jb-booking-thanks {
	width: 480px;
}

.jb-booking.jb-booking-thanks .jb-booking-cart {
	display: block;
}

.jb-booking.jb-booking-thanks > p {
	text-align: center;
	font-size: 12px;
	line-height: 16px;
}

.jb-booking.jb-booking-thanks > p > em {
	font-size: 16px;
	line-height: 20px;

	/* needed for bold */
	font-weight: 600;

	font-style: normal;
}

.jb-booking .jb-booking-book-remark {
	padding-top: 1em;
	padding-bottom: 0.5em;
}

.jb-booking .jb-booking-book-remark em {
	font-style: normal;
	font-size: 14px;

	font-weight: 600;
}

/* added for datepicker */
.jb-booking-input-wrap {
	position: relative;
}

.jb-booking-price {
	padding-left: 10px;
}

.jb-booking-currency {
	float: left;
}

.jb-booking-pricenum {
	float: left;
	min-width: 60px;
	text-align: right;
}

.jb-booking-price-total * {
	/* needed for bold */
	font-weight: 600;
}


/* general cart styling */
.jb-booking .jb-booking-cart-wrap {
	background-color: #efefef;
	padding: 20px 0 0 30px;
}

.jb-booking .jb-booking-cart-wrap > p {
	padding-bottom: 20px;
}

.jb-booking .jb-booking-spacer {
	height: 30px;
}
