/* 

	First Bus eTickets
	Site	: 	firstgroup.com
	Author	:	spideronline.co.uk

	Recurring Elements
	Cart Buttons
	Select Tickets
	Your Shopping Cart
	Delivery Details
	Cart Totals
	Login / Guest 
	Personal Information
	Passenger Details
	Terms and Mailing List
	Instalments
	Check Amounts
	Order Details
	Max 1068
		Photocard labels
	Max 768
		Select Tickets
		Ticket Summary
		Delivery Details
		Login / Guest
		Personal Information
		Passenger Details
		Instalments
		Cart Totals

*/






/*	
----------------------------------------------------------
Recurring Elements
---------------------------------------------------------- 
*/

#content .postcode_check {
	display: block;
	height: 42px;
	line-height: 42px;
	color: #fafafa;
	font-weight: 700;
	background: #353535;
	width: 100px;
	text-align: center;
	position: absolute;
	right: 0;
	top: 0;
	border-radius: 2px;
	text-decoration: none;
}

#content .postcode_check:hover {
	text-decoration: none;
}

.hasDatepicker {
	background: url(../../images/form-elements/calendar.png) no-repeat center right;
	background-size: 32px 32px;
	color: #555;
}

.etickets.list .messages {
    width: calc(100% - 40px);
    margin: 0 0 20px 20px;
}

.etickets.list .messages p:last-child {
	margin-bottom: 0;
}

.etickets.list .messages a {
    display: inline-block;
    padding: 1px 8px;
    font-size: 12px;
    float: right;
    background: rgba(0, 150, 136, 1);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    border-radius: 2px;
}








/*	
----------------------------------------------------------
Cart Buttons
---------------------------------------------------------- 
*/

body #pageWrapper .proceed {
	float: right;
	color: #fafafa;
	background: rgba(0, 150, 136, 1);
	position: relative;
	padding-top: 0;
	padding-bottom: 0;
	line-height: 42px;
}

.etickets.list.working button[type=submit] {
    padding-left: 10px;
    padding-right: 40px;
    position: relative;
}

.etickets.list.working button[type=submit]:after {
    content: "";
    display: block;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-left: 3px solid #fff;
    border-bottom: 3px solid #fff;
    position: absolute;
    right: 10px;
    top: 11px;
    animation: 1.8s infinite linear rotateCW;
    -webkit-animation: 1.8s infinite linear rotateCW;
}






/*	
----------------------------------------------------------
Select Tickets
---------------------------------------------------------- 
*/

.tickets {
	margin-bottom: 20px;
}

.ticket-view {
	position: relative;
	overflow: hidden;
	height: auto;
}

.ticket-view.unavailable:before {
	position: absolute;
	z-index: 100;
	top: 6px;
	left: 0px;
	width: 100%;
	background: rgba(255, 255, 255, 0.85);
	height: 100%;
	content: "";
}

.ticket-view.unavailable:after {
	content: 'Insufficient Tickets'; /* Travel Offer Points */
	display: block;
	position: absolute;
	top: 50%;
	text-align: center;
	transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	z-index: 101;
	width: 100%;
	padding: 0 20px;
	color: #444;
	line-height: normal;
}

.ticket-details {
	position: absolute;
	left: -10000px;
}

.ticket-details + label {
	position: relative;
	padding: 14px 130px 14px 16px;
	display: block;
	width: 100%;
	font-weight: 600;
	font-size: 13.5px;
	background: rgba(0, 0, 0, 0.04);
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	height: auto;
	transition: all .3s;
	margin: 6px 0 0 0;
	line-height: 24px;
}

.ticket-details + label:after {
	content: "\ea0e";
	font-family: first-icons;
	font-weight: normal;
	color: #fafafa;
	background: rgba(0, 150, 136, 1);
	width: 36px;
	height: 36px;
	display: block;
	position: absolute;
	right: 9px;
	top: 50%;
	margin-top: -18px;
	font-size: 10px;
	line-height: 36px;
	text-align: center;
	border-radius: 2px;
}

.ticket-details + label.done:after,
.ticket-details:checked + label.done:after {
	content: "\e979";
	background: rgba(0, 150, 136, 1);
	color: #fafafa;
}

#content .ticket-details:checked + label {
	color: #fafafa;
	background: rgba(0, 150, 136, 1);
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ticket-details:checked + label:after {
	content: "\ea0f";
}

.ticket-details.always-open + label:after {
	display: none;
}

.ticket-details + label p {
	font-style: italic;
	margin: 0;
}

.ticket-details + label span {
	position: absolute;
	right: 74px;
	top: 50%;
	display: block;
	text-align: right;
	line-height: 24px;
	transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
}

.ticket-details + label i {
	position: relative;
	display: block;
	font-weight: normal;
	font-size: 80%;
	line-height: 16px;
}

.ticket-details ~ div,
.ticket-details ~ form {
	max-height: 0;
	transition: max-height .5s;
	overflow: hidden;
	width: 100%;
	display: block;
	background: rgba(0,0,0,0.02);
}

.ticket-details:checked ~ div,
.ticket-details:checked ~ form {
	max-height: 1000px;
	border-bottom: 1px solid rgba(0,0,0,0.06);
	margin-bottom: 8px;
}

.ticket-details ~ form fieldset {
	padding: 16px;
	padding-bottom: 0;
}




.eticket {
	position: relative;
}

.eticket > div {
	display: block;
	margin: 0 0 10px 0;
}

.eticket .messages {
	display: none;
}

.eticket .info {
    border: 1px solid #e5e5e5;
    border-radius: 2px;
    background: #fff;
    padding: 6px 10px;
    font-weight: 600;
}

.eticket .dates {
}

.eticket > div > label {
	display: block;
	float: left;
	padding-right: 0;
	text-align: right;
	line-height: 24px;
	height: auto;
}

.eticket .date input{
	display: block;
	float: left;
	width: calc(100% - 48px);
    max-width: 189px;
	border: 1px solid #e5e5e5;
	border-radius: 2px;
	box-shadow: none!important;
	-webkit-appearance: none;
	padding: 0 25px 0 10px;
	font-size: 13.5px;
	line-height: 42px;
	height: 42px;
	margin-right: 20px;
}

.eticket .error {
	border: 2px solid #aa0000 !important;
}

.eticket .travellers {
}

.eticket .travellers label {
	display: block;
	float: left;
	padding-right: 4px;
	line-height: 24px;
	height: auto;
}

.eticket .travellers .traveller {
	display: block;
	float: left;
}

.eticket .travellers .traveller label {
	display: block;
	float: left;
	padding: 0 4px 0 20px;
	line-height: 42px;
	height: 42px;
}

.eticket .travellers .traveller select {
	display: block;
	float: left;
	border: 1px solid #e5e5e5;
	border-radius: 2px;
	width: auto;
	line-height: 40px;
	height: 42px;
}

.eticket .travellers .traveller select.error {
	border: 2px solid #aa0000;
	padding: 0 24px 2px 5px;
}

.eticket .travellers .traveller select option:disabled {
	color: #cccccc;
}

.eticket .buttons {
	margin-bottom: 0;
}

.eticket .buttons  .in-cart {
	display: none;
	float: right;
	padding: 0 20px 0 4px;
	line-height: 42px;
	height: 42px;
}

.eticket .buttons button {
	display: block;
	float: right;
	width: 100px;
	padding-right: 0;
	padding-left: 0;
	text-align: center;
}


.eticket .show {
	display: block !important;
}


#ticket_disp + #cart-buttons {
	margin-top: 30px;
}

#cart-buttons.hide {
	display: none;
}

.dates + button {
    float: right;
}

.eticket .dates > input {
    width: 100%;
    max-width: 189px;
    float: left;
    margin-left: 0;
}

fieldset.eticket > label {
    line-height: 20px;
    vertical-align: middle;
    display: inline-block;
    padding-top: 0px;
}





.eticket .date,
.eticket .travellers {
    width: calc((100% - 120px) / 2);
    float: left;
    position: relative;
    margin-right: 10px;
    background: #fff;
    border: 1px solid #e5e5e5;
    padding:  10px;
}

.eticket .date label,
.eticket .travellers label {
    line-height: 24px;
    text-align: left;
    margin: 0 0 5px 0;
}

.eticket .date input {
    width: 100%;
    max-width: 100%;
}

.eticket .travellers {
    
}

span.traveller {
    display: block;
    background: #f7f7f7;
    width: 100%;
    border: 1px solid #e5e5e5;
    margin-bottom: 10px;
    position: relative;
}

span.traveller:last-of-type {
	margin-bottom: 0;
}

.eticket .travellers .traveller label {
    padding: 0 0 0 10px;
    margin: 0;
}

span.traveller select {
    position: absolute;
    right: 0;
    width: 60px!important;
    border: none!important;
    border-left: 1px solid #e5e5e5!important;
    padding-left: 10px;
    border-radius: 0;
}

span.traveller.single select {
	position: static;
	width: 100%!important;
    border: none!important;
}



/*	
----------------------------------------------------------
Your Shopping Cart
---------------------------------------------------------- 
*/

.ticket-summary .head-block .row {
	background: rgba(0, 150, 136, 1);
	padding: 0;
	font-size: 16px;
	font-weight: 700;
	color: #fafafa;
	border-bottom: 1px solid #4A716C;
}

.ticket-summary .head-block .row > span:first-of-type {
	display: none;
}

.ticket-summary .row {
	background: rgba(0,0,0,0.03);
	border-bottom: 1px solid rgba(0,0,0,0.08);
	margin: 6px 0 0 0;
	position: relative;
}

.ticket-summary .row.empty {
	background: none;
	border: none;
	padding: 12px;
}

.ticket-summary .row > span {
	display: block;
	float: left;
	position: relative;
	padding: 12px 0;
	font-weight: 600;
}

.ticket-summary .row > span:after {
	content: "";
	display: table;
	clear: both;
}

.ticket-summary .ticket-no {
	width: 100%;
	height: 18px;
	line-height: 18px;
	top: 50%;
	margin-top: -9px;
	left: 0;
	position: absolute;
	display: inline-block;
	text-align: center;
	font-size: 11px;
	color: rgba(0,0,0,0.4);
}

.ticket-summary .head-block .row > span:first-of-type {
	font-size: 0;
}

.ticket-summary .body-block .row > span:first-of-type,
.ticket-summary .body-block .row > span:last-of-type {
	position: absolute;
	left: 0;
	height: 50%;
	padding: 0;
	background: rgba(0,0,0,0.03);
	width: 44px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	color: #999;
	text-align: center;
}

.ticket-summary .body-block .row > span:last-of-type {
	text-align: center;
	left: auto;
	top: 50%;
}

.ticket-summary .row .wide {
	width: calc(100% - 166px);
	margin-left: 44px;
	padding-left: 16px;
}

.ticket-summary .head-block .row .wide {
	margin-left: 0;
}

.ticket-summary .validity {
	display: block;
	font-weight: 400;
	font-size: 12px;
}

.ticket-summary .row .num {
	width: 110px;
	text-align: right;
	padding-right: 16px;
	position: absolute;
	right: 0;
	top: 50%;
	margin-top: -24px;
}

.ticket-summary .custom-icon-delete {
	font-size: 0;
	color: #D12F19;
	width: 100%;
	height: 40px;
	display: inline-block;
	line-height: 40px;
	text-align: center;
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -20px;
}

.ticket-summary .custom-icon-delete:before {
	font-family: first-icons;
	font-weight: normal;
	content: "\ea13";
	font-size: 8px;
}











/*	
----------------------------------------------------------
Cart Totals
---------------------------------------------------------- 
*/

.summary-data .body-block {
	width: 100%;
	max-width: 500px;
	float: right;
	margin: 0 0 24px 0;
}

.summary-data .row {
	background: rgba(0,0,0,0.03);
	margin: 24px 0 0 0;
	border-bottom: 1px solid rgba(0,0,0,0.08);
	position: relative;
}

.summary-data .row > span.item-label {
	position: relative;
	display: block;
	float: left;
	width: 100%;
	padding: 0;
	font-weight: 600;
}

.summary-data .row .item-label > span.span {
	float: left;
	text-transform: uppercase;
	padding: 16px;
	width: calc(100% - 110px);
	font-size: 12px;
	letter-spacing: 0.5px;
}

body #content .summary-data .row .item-label > span.num {
	position: absolute;
	font-size: 16px;
	margin-top: -24px;
	top: 50%;
	right: 0;
	padding: 12px 16px 12px 0;
}

.summary-data .row.total .item-label > span.num {
	color: #353535;
}


#content .summary .insert {
	clear: both;
	padding: 0 10px;
	background: #fafafa;
	border-top: 1px solid rgba(0,0,0,0.08);
}

#content .summary .insert .note {
	margin: 10px 0 0 0;
	padding: 0;
}

#content .summary .insert ul {
	margin: 0;
	padding: 10px 0 0 0;
}

#content .summary .insert ul li {
	list-style-type: none;
	margin: 0 0 10px 0;
	display: block;
}

#content .summary .insert ul li.hidden {
	display: none;
}

#content .summary .insert ul li:after {
	content: "";
	display: table;
	clear: both;
}

#content .summary .insert ul li:before {
	content: "";
	display: none;
}

#content .summary .insert ul li.address-select {
	background-color: #DAEDD7;
}

#content .summary .insert ul li.address-select select {
	background-color: #DAEDD7;
}

#content .summary .insert ul li.address-select label {
	color: green;
}

#content .summary .insert ul li a[name] {
	color: #666666;
}

#content .summary .insert ul li a[name]:hover {
	text-decoration: none;
}

#content .summary .insert ul li input[type="text"] {
	width: 100%;
}

#content .summary .insert ul li input#postcode {
	display: inline-block;
	width: calc(100% - 110px);
	vertical-align: top;
}

#content .summary .insert ul li .btn {
	height: 41px;
	width: 110px;
	vertical-align: top;
}

#content .summary .insert ul label {
	display: none;
}



div#cart-msg {
    text-align: left;
    padding: 12px 20px;
}

div#cart-msg {
    text-align: left;
    padding: 20px 30px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(27,27,27,0.4);
    position: absolute;
    width: 260px;
    right: 0;
    top: 100%;
}

div#cart-msg a[href="?checkout"] {
    display: inline-block;
    display: block;
    border-radius: 2px;
    text-align: center;
    padding: 9px 25px;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s;
    line-height: 24px;
    height: 42px;
    -webkit-appearance: none;
    border: none;
    background: rgba(0, 150, 136, 1);
    border: none;
    color: #fafafa;
    font-weight: 600;
    clear:  both;
    margin: 20px 0 0 0;
    width:  auto;
}

div#cart-msg .close {
	font-size: 0;
    position: absolute;
    top: 10px;
    right: 10px;
    background: #616161;
    border-radius: 50%;
    height: 20px;
    width: 20px;
    color: #fff;
}

div#cart-msg .close:before {
    content: "\e5cd";
    font-size: 13px;
    font-family: first-icons;
    font-weight: normal;
    position: absolute;
    top: 0;
    line-height: 20px;
    width: 20px;
    left: 50%;
    margin-left: -6px;
}









/*	
----------------------------------------------------------
Passenger Details
---------------------------------------------------------- 
*/


.passenger-data legend.t_title {
	font-size: 18px;
	line-height: 28px;
	font-weight: 600;
	padding-top: 24px;
}

.passenger-data .head-block .row {
	background: rgba(0, 150, 136, 1);
	padding: 0;
	font-size: 16px;
	font-weight: 700;
	color: #fafafa;
	border-bottom: 1px solid #4A716C;
}

.passenger-data .head-block .row > span:first-of-type,
.passenger-data .head-block .row > span:last-of-type {
	display: none;
}

.passenger-data .head-block .wide {
	padding: 14px 130px 14px 16px;
	display: block;
	width: 100%;
	font-weight: 600;
}

.passenger-data .head-block .row .num {
	width: 110px;
	text-align: right;
	padding-right: 16px;
	position: absolute;
	right: 45px;
	top: 50%;
	margin-top: -24px;
	font-weight: 600;
}

.passenger-data .row {
	background: rgba(0,0,0,0.04);
	border-bottom: 1px solid rgba(0,0,0,0.08);
	margin: 6px 0 0 0;
	position: relative;
}

.passenger-data .row > span {
	display: block;
	float: left;
	position: relative;
	padding: 12px 0;
}

.passenger-data .row > span.passenger-label {
	width: calc(100% - 44px);
	padding: 0 16px 0 60px;
	position: relative;
}


.passenger-data .passenger-label > span:first-of-type,
.passenger-data .passenger-label > span:last-of-type {
	position: absolute;
	left: 0;
	height: 50%;
	padding: 0;
	background: rgba(0,0,0,0.03);
	width: 44px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	color: #999;
	text-align: center;
	z-index: 1;
}

.passenger-data .passenger-label > span:last-of-type {
	text-align: center;
	left: 0px;
	top: 50%;
}

.passenger-data .passenger-label > span:first-of-type a {
	width: 100%;
	height: 18px;
	line-height: 18px;
	top: 50%;
	margin-top: -9px;
	left: 0;
	position: absolute;
	display: inline-block;
	text-align: center;
	font-size: 11px;
	color: rgba(0,0,0,0.4);
}

.passenger-data .passenger-label > span:last-of-type a {
	font-size: 0;
	color: #D12F19;
	width: 100%;
	height: 100%;
	display: inline-block;
	line-height: 40px;
	text-align: center;
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -20px;
}

.passenger-data .passenger-label > span:last-of-type a:before {
	font-family: first-icons;
	font-weight: normal;
	content: "\ea13";
	font-size: 8px;
}


.passenger-data .ticket {
	padding: 14px 130px 14px 0;
	display: block;
	width: 100%;
	font-weight: 600;
}

.passenger-data .validity {
	display: block;
	font-weight: 400;
	font-size: 12px;
}

.passenger-data .row .num {
	width: 110px;
	text-align: right;
	padding-right: 16px;
	position: absolute;
	right: 0;
	top: 50%;
	margin-top: -12px;
	font-weight: 600;
}

.noneed {
	width: 36px;
	height: 36px;
	display: block;
	position: absolute;
	right: 9px;
	top: 50%;
	margin-top: -18px;
	font-size: 0;
	cursor: default;
}

.toggle-passenger-info {
	position: absolute;
	left: -10000px;
}

.toggle-passenger-info + label {
	font-size: 0;
	height: 76px;
}

.passenger-icon:after,
.toggle-passenger-info + label:after {
	content: "\ea10";
	font-family: first-icons;
	font-weight: normal;
	color: #fafafa;
	background: rgba(0, 150, 136, 1);
	width: 36px;
	height: 36px;
	display: block;
	position: absolute;
	right: 9px;
	top: 50%;
	margin-top: -18px;
	font-size: 18px;
	line-height: 36px;
	text-align: center;
	border-radius: 2px;
}

.passenger-icon:after {
	position: relative;
	top: auto;
	margin: 0;
	right: auto;
	display: inline-block;
	width: 22px;
	height: 22px;
	line-height: 22px;
	font-size: 14px;
}

.warn-undone {
	margin: 0 0 24px 0;
	display: block;
}

.toggle-passenger-info:checked + label:after {
	top: 20px;
	margin-top: 0;
}

.toggle-passenger-info + label.done:after {
	content: "\e7fd";
	background: rgba(0, 150, 136, 1);
}

.toggle-passenger-info:checked + label.done:after {
	content: "\e7fd";
}

.toggle-passenger-info ~ div {
	max-height: 0;
	overflow: hidden;
	width: 100%;
	clear: both;
	background: #fafafa;
	transition: all .4s;
	transform: translate3d(0,0,0);
	-ms-transform: translate3d(0,0,0);
	-webkit-transform: translate3d(0,0,0);
}

.toggle-passenger-info:checked ~ div {
	max-height: 2000px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

#content .passengers .insert {
	padding: 0 10px;
}

#content .passengers .insert .note {
	margin: 10px 0 0 0;
	padding: 0;
}

#content .passengers .insert .copy-down {
	display: inline-block;
	line-height: 40px;
	text-align: center;
	color: #fafafa;
	font-size: 13.5px;
	padding: 0 18px 0 36px;
	margin: 10px 0 0 0;
	width: auto;
	transition: all .2s;
	border-radius: 2px;
	border: 1px solid rgba(0,0,0,0.2);
	background: rgba(0,0,0,0.05);
	color: #777;
	font-weight: 600;
	position: relative;
}

#content .passengers .insert .copy-down:hover {
	color: #fafafa;
	background: #454545;
}

#content .passengers .insert .copy-down:before {
	content: "\ea36";
	font-family: first-icons;
	font-weight: normal;
	left: 8px;
	font-size: 12px;
	position: absolute;
	width: 26px;
	text-align: center;
	transition: all .5s;
	transform: translate3d(0,0,0) rotate(0);
	-ms-transform: translate3d(0,0,0) rotate(0);
	-webkit-transform: translate3d(0,0,0) rotate(0);
}

#content .passengers .insert .copy-down:hover:before {
	transform: translate3d(0,0,0) rotate(180deg);
	-ms-transform: translate3d(0,0,0) rotate(180deg);
	-webkit-transform: translate3d(0,0,0) rotate(180deg);	
}



#content .passengers .insert ul {
	margin: 0;
	padding: 10px 0 0 0;
	width: 100%;
}

#content .passengers .insert ul li {
	list-style-type: none;
	margin: 0 0 10px 0;
	display: block;
}

#content .passengers .insert ul li.hidden {
	display: none;
}

#content .passengers .insert ul li:after {
	content: "";
	display: table;
	clear: both;
}

#content .passengers .insert ul li:before {
	content: "";
	display: none;
}

#content .passengers .insert ul li input[type="text"] {
	width: 100%;
}

#content .passengers .insert ul label {
	display: none;
}

#content .passengers .insert ul input[type="checkbox"].switch {
	position: absolute;
	left: -10000px;
}

#content .passengers .insert ul input[type="checkbox"].switch + label {
	display: block;
    padding: 12px 16px 12px 50px;
	font-weight: 700;
	line-height: normal;
}

#content .passengers .insert ul input[type="checkbox"].switch + label:after {
	content: "\ea57";
	font-family: first-icons;
	font-weight: normal;
	position: absolute;
	top: 14px;
	left: 18px;
	font-size: 12px;
	color: #656565;
}

#content .passengers .insert ul input[type="checkbox"].switch:checked + label:after {
	content: "\ea56";
	color: rgba(0, 150, 136, 1);
}

#content .passengers .insert ul div.info {
    display: block;
    -webkit-appearance: none;
    margin: 0;
    border: 1px solid #e5e5e5;
    border-radius: 2px;
	width: 100%;
	padding: 10px 8px;
    color: #555;
}

#content .passengers .confirm input[type="checkbox"] {
	position: absolute;
	left: -10000px;
}

#content .passengers .confirm input[type="checkbox"] + label {
	font-weight: 400;
	padding: 12px 0;
	display: block;
	padding: 12px 16px 12px 45px;
}

#content .passengers .confirm input[type="checkbox"] + label:after {
	content: "\ea57";
	font-family: first-icons;
	font-weight: normal;
	position: absolute;
	top: 13px;
	left: 13px;
	font-size: 12px;
	color: #656565;
}

#content .passengers .confirm input[type="checkbox"]:checked + label:after {
	content: "\ea56";
	color: rgba(0, 150, 136, 1);
}




/*	
----------------------------------------------------------
Personal Details
---------------------------------------------------------- 
*/

#content .personal-data,
#content .card-payment {
	position: relative;
	padding-top: 52px;
	margin: 0 0 24px 0;
}

#content .personal-data legend,
#content .card-payment legend {
	display: block;
	width: 100%;
	padding: 14px 16px;
	position: absolute;
	top: 0;
	left: 0;
	background: rgba(0, 150, 136, 1);
	font-size: 16px;
	font-weight: 700;
	color: #fafafa;
	border-bottom: 1px solid #4A716C;
}



/*	
----------------------------------------------------------
Payment
---------------------------------------------------------- 
*/

#content .payment {
	position: relative;
	padding-top: 52px;
	margin: 0;
}

#content .payment legend {
	display: block;
	width: 100%;
	padding: 14px 16px;
	position: absolute;
	top: 0;
	left: 0;
	background: rgba(0, 150, 136, 1);
	font-size: 16px;
	font-weight: 700;
	color: #fafafa;
	border-bottom: 1px solid #4A716C;
}

#content .payment .payment-inner {
	margin: 0 0 24px 0;
	padding: 0 16px 16px;
	background: rgba(0,0,0,0.04);
	border-bottom: 1px solid rgba(0,0,0,0.08);
	width: 100%;
}

#content .payment .head {
	padding: 16px 0 8px;
	font-weight: 400;
}

#content .payment ul {
	width: 100%;
	max-width: 318px;
	margin: 0;
}

#content .payment ul li {
	list-style-type: none;
	margin: 6px 0 0 0;
	position: relative;
	float: left;
}

#content .payment ul li:before {
	content: "";
	display: none;
}

#content .payment li label {
	display: none;
}

#content .payment li.payment-form-first-name {
	margin-right: 10px;
	width: calc(50% - 5px);
}

#content .payment li.payment-form-last-name {
	width: calc(50% - 5px);
}

#content .payment li.payment-form-expiry {
	margin-right: 10px;
	width: calc(70% - 10px);
}

#content .payment li.payment-form-cvv {
	width: 30%;
}

#content .payment li > div,
#content .payment li > input {
	width: 100%;
	border: 1px solid #d0d0d0;
	height: 40px;
	padding: 10px 8px;
	background: #ffffff;
}




.card-payment .form-row {
	padding: 0 10px;
}

.card-payment .form-row:first-child {
	padding-top: 10px;
}

.card-payment .form-row .form-inner {
	float: left;
}

.card-payment .form-row .form-inner.form-exp {
	width: 67%;
	padding-right: 10px;
}

.card-payment .form-row .form-inner.form-cvv {
	width: 33%;
}

.card-payment .form-row label {
	display: none;
	width: 100%;
}

.card-payment .form-row div {
	width: 100%;
}

.card-payment .form-row div iframe {
	width: 100%;
}

#iframesSubmit {
	display: none;
	float: right;
	width: 110px;
}

#heartland-frame-submit {
	display: block;
	height: 42px !important;
	width: 110px;
}

@media only screen and (max-width:768px) {
	#iframesSubmit {
		width: 100%;
	}

	#heartland-frame-submit {
		width: 100%;
	}
}



/*	
----------------------------------------------------------
Terms and Conditions
---------------------------------------------------------- 
*/

#content .agree-and-action {
	position: relative;
	padding-top: 52px;
	margin: 0;
}

#content .agree-and-action legend {
	display: block;
	width: 100%;
	padding: 14px 16px;
	position: absolute;
	top: 0;
	left: 0;
	background: rgba(0, 150, 136, 1);
	font-size: 16px;
	font-weight: 700;
	color: #fafafa;
	border-bottom: 1px solid #4A716C;
}

#content .agree-and-action ul {
	margin: 0 0 24px 0;
}

#content .agree-and-action ul li {
	list-style-type: none;
	background: rgba(0,0,0,0.04);
	border-bottom: 1px solid rgba(0,0,0,0.08);
	margin: 6px 0 0 0;
	position: relative;
}

#content .agree-and-action ul li:before {
	content: "";
	display: none;
}

#content .agree-and-action .employer label {
	display: inline-block;
	padding: 3px 8px 2px 16px;
	font-weight: 400;
	line-height: 42px;
}

#content .agree-and-action .employer select {
	display: inline-block;
	margin: 3px 0 2px 8px;
	width: calc(100% - 200px);
}


#content .agree-and-action ul li.blurb {
/*	border-bottom: none;	*/
	padding: 7px 10px 10px 10px;
}


#content .agree-and-action ul li.blurb + li {
/*	margin-top: 0;	*/
}
 
#content .agree-and-action ul li.blurb p {
	margin: 10px 0 0 0;
	font-size: 95%;
	font-weight: bold;
}
 
#content .agree-and-action ul li.blurb p:first-child {
	margin-top: 0;
}



@media only screen and (max-width:435px) {
	#content .agree-and-action .employer label {
		padding-top: 16px;
		line-height: normal;
	}

	#content .agree-and-action .employer select {
		width: calc(100% - 16px);
	}
}

#content .agree-and-action input[type="checkbox"] {
	position: absolute;
	left: -10000px;
}

#content .agree-and-action input[type="checkbox"] + label {
	font-weight: 400;
	padding: 12px 0;
	display: block;
	padding: 12px 16px 12px 60px;
}

#content .agree-and-action input[type="checkbox"] + label:before {
	content: "";
	background: rgba(0,0,0,0.04);
	width: 44px;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	display: block;
}

#content .agree-and-action input[type="checkbox"] + label:after {
	content: "\ea57";
	font-family: first-icons;
	font-weight: normal;
	position: absolute;
	top: 13px;
	left: 18px;
	font-size: 12px;
	color: #656565;
}

#content .agree-and-action input[type="checkbox"]:checked + label:after {
	content: "\ea56";
	color: rgba(0, 150, 136, 1);
}









/*	
----------------------------------------------------------
Order Details
---------------------------------------------------------- 
*/

.order-details {
	width: 100%;
	overflow: hidden;
}

.order-details .row {
    background: rgba(0,0,0,0.03);
    border-bottom: 1px solid rgba(0,0,0,0.08);
    margin: 6px 0 0 0;
    position: relative;
}

.order-details .row > span {
    display: block;
    float: left;
    position: relative;
    padding: 12px 0;
}

.order-details .row > span:first-of-type {
    position: absolute;
    left: 0;
    height: 100%;
    padding: 0;
    background: rgba(0,0,0,0.03);
    width: 44px;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: #999;
    text-align: center;
}

.order-details .row > span:first-of-type span {
	display: inline-block;
	position: relative;
	top: 50%;
	transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
}

.order-details .row > span.wide {
	width: calc(100% - 154px);
	margin-left: 44px;
	padding-left: 12px;
}

.order-details .row > span.num {
    width: 110px;
    text-align: right;
    padding-right: 16px;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -24px;
    font-weight: 600;
}

.payment-details {
	width: 100%;
	position: relative;
	overflow: hidden;
}












/*	
----------------------------------------------------------
Max 1065
---------------------------------------------------------- 
*/

@media only screen and (max-width: 1065px) {


	fieldset.eticket > label {
	    line-height: 24px;
	    width: 100%;
	    margin: 0 0 10px 0;
	}

	.eticket div.dates {
		width: calc(100% - 150px);
		padding-right: 0;
	}

}

@media only screen and (min-width: 679px) and (max-width: 835px) {

	.eticket div.dates {
		width: 100%;
		margin-bottom: 10px;
	}

}




/*	
----------------------------------------------------------
Max 1068
---------------------------------------------------------- 
*/

@media only screen and (max-width: 1068px) {

		/*	
		----------------------------------------------------------
		Photocard labels
		---------------------------------------------------------- 
		*/

		.got_photo_no label,
		.got_photo_yes label {
			font-size: 12px;
		}

		.etickets.list .messages a {
			float: left;
			margin-top: 10px;
		}

	}






/*	
----------------------------------------------------------
Max 768
---------------------------------------------------------- 
*/

@media only screen and (max-width:768px) {


	.etickets.list .messages {
	    width: calc(100% - 20px);
	    margin: 0 0 10px 10px;
	}

	/*	
	----------------------------------------------------------
	Select Tickets
	---------------------------------------------------------- 
	*/

	.ticket-details + label {
		padding: 12px 130px 12px 8px;
		margin: 6px 0 0 0;
	}

	.ticket-details + label:after {
		width: 28px;
		height: 28px;
		right: 8px;
		margin-top: -14px;
		line-height: 28px;
	}

	.ticket-details + label span {
		right: 50px;
	}

	.ticket-details ~ form fieldset {
		padding: 8px;
	}











	/*	
	----------------------------------------------------------
	Ticket Summary
	---------------------------------------------------------- 
	*/

	.ticket-summary .head-block .row > .wide {
		margin-left: 0;
	}

	.ticket-summary .body-block .row > span:first-of-type, 
	.ticket-summary .body-block .row > span:last-of-type {
		left: 0;
		right: auto;
		height: 50%;
		width: 40px;
	}

	.ticket-summary .body-block .row > span:last-of-type {
		bottom: 0;
		top: auto;
		border-top: 1px solid rgba(255,255,255,0.4);
	}

	.ticket-summary .row .num {
		width: 80px;
		padding-right: 8px;
		right: 0;
	}

	.ticket-summary .row .wide {
		width: calc(100% - 120px);
		margin-left: 40px;
		padding-left: 8px;
	}









	/*	
	----------------------------------------------------------
	Delivery Details
	---------------------------------------------------------- 
	*/

	.delivery-details .body-block .row > span:first-of-type {
		width: 40px;
	}

	.delivery-details .head-block .row > span:first-of-type,
	.delivery-details .row > span:last-of-type {
		display: none;
	}

	.delivery-details .head-block .row .dwide {
		margin-left: 0;
	}

	.delivery-details .row .dwide {
		width: calc(100% - 120px);
		margin-left: 40px;
		padding-left: 12px;
	}

	.delivery-details .row .num {
		width: 80px;
		padding-right: 12px;
		right: 0;
	}














	/*	
	----------------------------------------------------------
	Login / Guest
	---------------------------------------------------------- 
	*/

	.check-login .login-form {
		overflow: hidden;
	}

	.check-login .login-form,
	.go-guest {
		padding-bottom: 60px;
		margin: 0 0 24px 0;
		width: 100%;
	}

	.check-login .login-form:before {
		content: "or";
		display: block;
		position: absolute;
		bottom: 0;
		line-height: 40px;
		text-align: center;
		width: 60px;
		left: 50%;
		margin-left: -30px;
		background: #fcfcfc;
		z-index: 1;
		font-weight: 400;
		font-style: italic;
		font-size: 16px;
	}

	.check-login .login-form:after {
		content: "";
		display: block;
		width: 100%;
		height: 1px;
		background: rgba(0,0,0,0.1);
		position: absolute;
		left: 0;
		top: auto;
		right: auto;
		bottom: 18px;
	}

	.check-login .login-form input[type="submit"] {
		width: auto;
		float: right;
	}










	/*	
	----------------------------------------------------------
	Personal Information
	---------------------------------------------------------- 
	*/

	#content fieldset.prefilled,
	#content .minimal-form {
		width: 100%;
		margin: 0 0 24px 0;
	}

	#content .minimal-form #delcopy:before {
		transform: translate3d(0,0,0) rotate(0);
		-ms-transform: translate3d(0,0,0) rotate(0);
		-webkit-transform: translate3d(0,0,0) rotate(0);
	}













	/*	
	----------------------------------------------------------
	Passenger Details
	---------------------------------------------------------- 
	*/

	.passenger-data .head-block .wide {
		padding-left: 8px;
	}

	.passenger-data .head-block .row .num {
		right: 0;
		padding-right: 8px;
	}

	.passenger-data .passenger-label > span:first-of-type {
		width: 40px;
	}

	.passenger-data .row > span.passenger-label {
		width: calc(100% - 60px);
		padding: 0 8px 0 48px;
		position: relative;
	}

	.passenger-data .ticket {
		padding: 12px 0px 12px 0;
		display: block;
		width: 100%;
		font-weight: 600;
	}

	.toggle-passenger-info + label {
		height: 72px;
		display: block;
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
	}

	.toggle-passenger-info + label:after,
	.toggle-passenger-info:checked + label:after {
		width: 20px;
		height: 20px;
		right: 8px;
		top: 36px;
		margin-top: 0;
		line-height: 20px;
		font-size: 14px;
	}

	.passenger-data .row .num {
		right: -60px;
		padding-right: 8px;
		top: 12px;
		margin-top: 0;
	}

	.toggle-passenger-info ~ div {
		padding: 0 8px;
		background: #f5f5f5;
	}

	.got_photo_no, 
	.got_photo_yes {
		width: 100%;
		display: block;
		float: left;
		position: relative;
		text-align: center;
		padding-bottom: 8px;
	}

	.got_photo_no label,
	.got_photo_yes label {
		font-size: 14px;
	}

	body .photo-file + label {
		width: 100%;
		max-width: none;
	}









	/*	
	----------------------------------------------------------
	Instalments
	---------------------------------------------------------- 
	*/

	.instalments .body-block .row > span:first-of-type {
		width: 40px;
	}

	.instalments .body-block .row .wide {
		padding-bottom: 0;
	}

	.instalments .row .installment-select,
	.instalments .row .wide {
		width: calc(100% - 70px);
		padding-left: 48px;
	}

	.instalments .row > span.installment-select {
		position: relative;
		top: auto;
		margin-top: 0;
		right: auto;
		text-align: left;
		padding-top: 0;
		padding-bottom: 16px;
	}

	.instalments .row > span.installment-select:before {
		content: "Installments";
		font-weight: 600;
		font-size: 14px;
	}

	.instalments .head-block .row .wide {
		padding-left: 8px;
	}

	.instalments .row > span.num {
		padding: 0 8px 0 0;
	}

	.instalments .row .select-installments {
		display: none;
	}








	/*	
	----------------------------------------------------------
	Cart Totals
	---------------------------------------------------------- 
	*/

	body #content .foot-block > .row > span.num {
		font-size: 16px;
		margin-top: -24px;
		top: 50%;
		right: 0;
		padding: 12px 8px 12px 0;
	}










	/*	
	----------------------------------------------------------
	Payment
	---------------------------------------------------------- 
	*/

	form[name="OGONE_CC_FORM"] .ncoltable2 td:first-child,
	form[name="OGONE_CC_FORM"] .ncoltable2 td:last-child {
		width: 100%;
		padding: 12px 8px!important;
	}

	form[name="OGONE_CC_FORM"] .ncoltable2 td:first-child {
		padding: 8px 12px 0 12px!Important;
	}

	form[name="OGONE_CC_FORM"] input[type=text] {
		width: 100%
	}

	#Ecom_Payment_Card_ExpDate_Month,
	#Ecom_Payment_Card_ExpDate_Year {
		width: 100px;
	}

	#Ecom_Payment_Card_ExpDate_Month {
		margin-right: 10px;
	}

	#Ecom_Payment_Card_ExpDate_Year {
		margin-left: 10px;
	}

	form[name="OGONE_PM_CHOICE_FORM"] .ncoltable2 td {
		width: 100%!important;
	} 

}

@media only screen and (max-width: 556px) {

	.eticket div.dates {
		width: 100%;
		margin-bottom: 10px;
	}

	.eticket .dates > input {
		width: 100%;
		max-width: 100%;
	}

}

@media only screen and (max-width: 400px) {

	.eticket div.dates {
		margin-bottom: 0;
	}

	.eticket div.dates div {
		width: 100%;
		margin-bottom: 10px;
	}

	.eticket .dates > input {
		margin-bottom: 10px;
	}

}






@media only screen and (min-width:800px) and (max-width:1000px) {

	.eticket .date,
	.eticket .travellers {
    	width: calc(100% - 120px);
	}
	
}


@media only screen and (max-width:740px) {

	.eticket .date,
	.eticket .travellers {
    	width: calc(100% - 120px);
	}
	
}

@media only screen and (max-width:400px) {

	.eticket .date,
	.eticket .travellers {
    	width: 100%;
    	margin: 0 0 10px 0;
	}

	.eticket .buttons button {
		width: 100%;
	}
	
}


@media only screen and (max-width: 768px) {

	.ticket-details + label span {
		position: relative;
		right: auto;
		top: auto;
		display: block;
		line-height: 24px;
		transform: none;
		-ms-transform: none;
		-webkit-transform: none;
		text-align: left;
	}

}


label.visible {
    display: block!important;
    margin: 0 0 5px 0;
}

