
@import url(normalize-2.1.3.css);

.aria-hidden {
	clip-path: inset(100%);
	clip: rect(1px 1px 1px 1px); /* IE 6/7 */
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap; /* added line */
	width: 1px;
}

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

body {
	text-align: center;
	font-family: sans-serif;
}

a, a:link, a:visited, a:hover, a:active {
	color: #0088cc;
	text-decoration: underline;
}

a:hover {
	text-decoration: none;
}

img {
	max-width: 100%;
}

div.warning {
	color: red;
}

/* password protected profiles */

div.dialogue.password {
	text-align: center;
}

/* services/teams page */

div.service, div.team {
	margin-bottom: 30px;
}

div.serviceGroup {
	border: 2px solid #AAA;
	padding: 30px;
	margin: 30px;
}

span.serviceGroupName, span.serviceGroupDivider {
	display:none;
}

/* timezone detect page */

body.timezoneDetect {
	background: white;
	text-align: center;
	padding: 100px;
}

/* grid of times */

div.gridPage {
	margin: 0px auto;
}

div.timeZone, div.jumpDate {
	margin: 30px;
}

div.timeZone input.submit {
	display: none;
}

div.gridDay {
	max-width: 300px;
	margin: 0px auto;
}

span.gridHeaderDayName, span.gridHeaderDate {
	display: none;
}

div.gridHeader h4 {
	color: inherit;
	white-space: nowrap;
}

div.gridSlot {
	padding: 2px;
	margin: 4px 0px;
	white-space: nowrap;
}

div.gridBusy, div.gridTechnicallyFree {
	color: #DDD;
	text-decoration: line-through;
}

div.showTechnicallyFree div.gridTechnicallyFree {
	background-color: #C2FFC2;
	color:inherit;
	text-decoration: none;
	opacity:0.5;
}

div.gridFree {
	background-color: #C2FFC2;
	cursor: pointer;
}

div.gridHighlight {
	background-color: #FAEAC3;
}

div.gridHighlight a:hover {
	text-decoration: underline;
}

/*
 The wideCol, mediumCol and narrowCol classes will be dynamically
 and incrementally added where possible. If the result wraps the
 grid, they will be removed for the safe failover.
*/

div.paging.wideCol, div.gridDay.wideCol {
	margin: 0px 2px;
	float: left;
	overflow: hidden;
}

html.rtl div.paging.wideCol, html.rtl div.gridDay.wideCol {
	float: right;
}

div.paging.wideCol {
	width: 45px;
}

div.paging.wideCol h4 {
	margin: 0px;
}

div.paging.wideCol h4 a {
	display: block;
	text-indent: -9999px;
	overflow: hidden;
	height: 45px;
}

div.paging.pagingNext.wideCol h4 a {
	background-image: url(/resources/pics/pageRight.png);
}

div.paging.pagingPrevious.wideCol h4 a {
	background-image: url(/resources/pics/pageLeft.png);
}

html.rtl div.paging.pagingNext.wideCol h4 a {
	background-image: url(/resources/pics/pageLeft.png);
}

html.rtl div.paging.pagingPrevious.wideCol h4 a {
	background-image: url(/resources/pics/pageRight.png);
}

div.gridDay.wideCol {
	width: 100px;
}

div.gridDay.wideCol h4 {
	margin: 0px;
}

div.gridDay.wideCol span.gridHeaderFull {
	display: none;
}

div.gridDay.wideCol span.gridHeaderDayName, div.gridDay.wideCol span.gridHeaderDate {
	font-weight: normal;
	display: block;
}

div.paging.mediumCol {
	width: 30px;
}

div.paging.mediumCol h4 a {
	height: 30px;
}

div.paging.mediumCol.pagingNext h4 a {
	background-image: url(/resources/pics/pageRightSmall.png);
}

div.paging.mediumCol.pagingPrevious h4 a {
	background-image: url(/resources/pics/pageLeftSmall.png);
}

html.rtl div.paging.mediumCol.pagingNext h4 a {
	background-image: url(/resources/pics/pageLeftSmall.png);
}

html.rtl div.paging.mediumCol.pagingPrevious h4 a {
	background-image: url(/resources/pics/pageRightSmall.png);
}

div.gridDay.mediumCol {
	width: 80px;
	font-size: small;
}

div.gridDay.narrowCol {
	width: 50px;
	font-size: x-small;
}

/* booking form and other pages */

div.dialogue {
	max-width: 960px;
	margin: 0px auto;
}

input.dialogueText {
	width: 400px;
	max-width: 90%;
}

textarea.dialogueTextArea {
	width: 400px;
	max-width: 90%;
	height: 150px;
}

div.dialogue.bookingForm {
	text-align: left;
	text-align: start; /* not universally supported, hence following fix */
}

input.invalid, textarea.invalid {
	border-color: red;
}

html.rtl  div.dialogue.bookingForm {
	text-align: right;
}

div.item {
	margin-bottom: 30px;
}

div.itemContent {
	margin-left: 30px;
}

div.itemAfter.singleLine, div.itemAfter.singleLine p {
	display: inline;
}

div.item.required div.itemLabel p:first-child:before {
	content: "* ";
	color: red;
	font-weight: bold;
}

div.kaptcha {
	width: 200px;
	border: 1px solid #AAA;
	padding: 10px;
	text-align: center;
}

div.kaptchaImage img {
	width: 150px;
	height: 50px;
}

input.kaptchaResponse {
	width: 150px;
}

div.periodButtons {
	padding: 10px;
}

button.showing {
	font-weight: bold;
}

div.grid {
	position: relative;
    min-height:220px;
}

div.noFreeMessage.modal {
	position: absolute;
	top: 100px;
	left: 25%;
	width: 50%;
	background-color: rgba(255,255,255,0.8);
	color: black;
	border: 1px solid black;
	padding: 40px 5px;
	text-align: center;
}

div.headerStart, div.headerEnd, div.mainStart, div.mainEnd, div.footerStart, div.footerEnd,
div.instructionsStart, div.instructionsEnd,
div.teamsStart, div.teamsEnd, div.teamStart, div.teamEnd,
div.servicesStart, div.servicesEnd, div.serviceGroupStart, div.serviceGroupEnd, div.serviceStart, div.serviceEnd {
	display: none;
}


div.teamPic img, div.servicePic img {
  display:block;
}

#spinner {
	position: absolute;
    width: 100%;
    left: 0;
}

#spinner img {
	margin-top: 50px;
}

#theform {
	transition:opacity 0.3s ease;
	-webkit-transition:opacity 0.3s ease;
}

#theform.disabled {
	opacity: 0.3;
}

#theform.disabled:after {
    display: block;
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 999;
}

/*****************************ADD TO CAL
*/

.addToCalendarLink {
	margin-bottom: 10px;
}

.addToCalendarLink:nth-last-child(n+2) {
    margin-right: 10px;
}

.addToCalendarLink:nth-last-child(n+2):after {
    content: '|';
    margin-left: 10px;
}


/*****************************STRIPE PAYMENT
*/

.payment {
	border: 1px solid #ccc;
    padding: 20px 10px;
    max-width: 430px;
	margin-bottom:20px;
	position:relative;
	border-radius: 3px;
	background: #fff;
	margin-top: 10px;
}

.payment a {
	text-decoration: underline !important;
}

.payment:after {
	content: '';
	display: block;
	clear:both;
}

.payment .paymentHeader {
	padding: 5px 20px 20px;
	margin-left: -10px;
	margin-right: -10px;
	border-bottom:  1px solid #ccc;
}

.payment .paymentHeader:after {
	content: '';
	display: block;
	clear:both;
}

.payment .paymentHeader .paymentDetails {
	padding-left: 30px;
	background: url(base/padlock.png) left -3px no-repeat;
	background-size: 25px;
	height: 26px;
	line-height: 26px;
	float: left;
	color:#8f9da5;
}

.payment .paymentHeader .poweredByStripe {
	float: right;
	background: url(base/stripe-outline.png) left top no-repeat;
	background-size: 119px 26px;
	width: 119px;
	height: 26px;
}


@media only screen and (-webkit-min-device-pixel-ratio: 1.3),
    only screen and (-o-min-device-pixel-ratio: 4/3),
    only screen and (min--moz-device-pixel-ratio: 1.3),
    only screen and (min-device-pixel-ratio: 1.3) {
	.payment .paymentHeader .poweredByStripe {
		background: url(base/stripe-outline@2x.png) left top no-repeat;
		background-size: 119px 26px;
	}
}

.payment .paymentMessage {
	padding: 10px 10px 5px;
	font-size: 0.85em;
}

.payment .item {
	padding: 0 10px;
}

.payment .item .itemContent {
	margin-left: 0;
	margin-top: 0;
	width: 100%;
}

.payment .item .itemLabel {
	width: 100%;
	text-align: left;
	padding: 0;
	margin-bottom: 20px;
}

.payment .item .itemContent input {
	width:100%;
}

.payment .securityCode {
	width:50%;
	float: left;
}

.payment .expiryDate {
	width:50%;
	float: left;
}

.payment .expiryDate:after {
	content: '';
	display: block;
	clear:both;
}

.payment .expiryDate .itemContent {
	text-align: center;
}

.payment .expiryDate input#cardMonth {
	width:30%;
	float: left;
}

.payment .expiryDate input#cardYear {
	width:60%;
	float: right;
}

.payment .errors {
	padding: 0 10px;
}

@media (max-width: 600px) {

	.payment .securityCode {
		width: 100%;
	}
	.payment .expiryDate {
		width: 100%;
	}

	.payment .paymentHeader .paymentDetails {
		padding-left: 0;
		background: none;
	}

}


*::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    color: inherit;
    opacity: 0.3;
}
*::-moz-placeholder { /* Firefox 19+ */
    color: inherit;
    opacity: 0.3;
}
*:-ms-input-placeholder { /* IE 10+ */
    color: inherit;
    opacity: 0.3;
}
*:-moz-placeholder { /* Firefox 18- */
    color: inherit;
    opacity: 0.3;
}