:root
{
	/* Colours */
	--a-color: #d35893;
	--a-hover-color: #d35893;
	--button-color: #fff;
	--button-hover-color: #fff;
	--button-bg-color: #d35893;
	--button-bg-hover-color: #666;
	--h1-color: #000;
	--body-bg-color: #fff;
	--fadeout-bg-color: #fff;
	--content-bg-color: #eee;
	--response-color: #000;
	--response-bg-color: #fff;
	--input-color: #000;
	--input-bg-color: #fff;
	--input-border-color: #ccc;
	
	/* Styles */
	--input-border-style: 1px solid;
	
	/* Fonts */
	--body-font: Arial, 'Helvetica', sans-serif;
	--input-font: Arial, 'Helvetica', sans-serif;
	--content-font: Arial, 'Helvetica', sans-serif;
	--p-font: Arial, 'Helvetica', sans-serif;
	--h-font: Arial, 'Helvetica', sans-serif;
}

body
{
	margin: 0px;
	padding: 0px;
	height: 100%;
	width: 100%;
	display: none;
	background-color: var(--body-bg-color);
	font-family: var(--body-font);
}

a:link, a:visited, a:focus
{
	outline: none;
	color: var(--a-color);
	text-decoration: none;
}

a:hover, a:active
{
	color: var(--a-hover-color);
	text-decoration: underline;
}

.banner
{
	margin: 0 auto;
	position: relative;
	width: auto;
}

.banner a
{
	display: block;
	margin: 0 auto;
	max-width: 800px;
}

.banner img
{
	margin: 0 auto;
	border: none;
	width: auto;
	max-width: 100%;
	max-height: 200px;
}

h1, h2, h3, h4, h5, h6
{
	padding: 0px;
	display: block;
	font-family: var(--h-font);
	font-weight: normal;
	margin: 10px 20px 10px 20px;
}

h1
{
	font-size: 26px;
	color: var(--h1-color);
}

h3.underline
{
	margin: 0;
	padding: 5px 0px 0px 40px;
	text-decoration: underline;
	font-weight: 600;
}

hr.separator
{
	border: none;
	border-bottom: 1px dashed #aaa;
}

p
{
	padding: 0px;
	display: block;
	font-family: var(--p-font);
	font-weight: normal;
	margin: 20px 40px 20px 40px;
	font-size: 16px;
	line-height: 1.5;
}

p:after
{
	content: "";
	display: table;
	clear: both;
}

img
{
	margin: 0px;
	padding: 0px;
	display: block;
	position: relative;
}

form
{
	margin: 0px;
	padding: 0px;
}

table
{
	width: auto;
	margin: 0px;
	padding: 10px;
}

table td
{
	margin: 0px;
	padding: 0px;
	line-height: 30px;
	height: 40px;
}

input, select
{
	position: relative;
	font-size: 16px;
	font-family: var(--input-font);
	color: var(--input-color);
}

input[type="search"]
{
	-webkit-appearance: none;
}

input#date
{
	width: 100px;
	float: left;
	margin: 0px 10px 0px 0px;
	border-color: var(--input-border-color);
	color: var(--input-color);
}

select#site, select#guests, select#duration, select#time, select#method, select#country, input#date
{
	width: 100%;
	max-width: 210px;
}

select[disabled], input[disabled], button[disabled]
{
	opacity: 0.8;
	background: #eee;
}

option[disabled].closed
{
	font-weight: bold;
}

option.busy, option.unavailable
{
	color: #aaa;
}

#link-back
{
	float: left;
}

#link-transaction-details
{
	cursor: pointer;
	text-decoration: underline;
}

a.button,
.button
{
	float: right;
	cursor: pointer;
	border: none;
	border-radius: 0px;
	color: var(--button-color);
	padding: 0.4em 0.5em;
	font-size: 1.25em;
	background: none repeat scroll 0% 0% var(--button-bg-color);
	-webkit-appearance: none;
	line-height: normal;
	text-decoration: none;
	outline: none;
}

a.button:hover,
.button:hover
{
	color: var(--button-hover-color);
	background: none repeat scroll 0% 0% var(--button-bg-hover-color);
	transition: all 250ms ease 0s;
}

.textbox, .dropdown
{
	box-sizing: border-box;
	border: var(--input-border-style) var(--input-border-color);
	border-radius: 0px;
	background-color: var(--input-bg-color);
	height: 36px;
}

.textbox
{
	width: 100%;
	padding: 4px;
}

.dropdown
{
	width: 100px;
	float: left;
	padding: 1px;
}

.required
{
	top: -5px;
	position: relative;
	color: #f00;
	font-size: 12px;
}

.warning
{
	padding: 5px;
	background-color: #ffeca3;
	border: 1px solid #eeca3c;
	display: block;
}

.warning::before
{
	font-family: 'Font Awesome 5 Free';
	font-style: normal;
	font-weight: 900; /* Solid icons use 900 */
	content: '\f071'; /* Use FontAwesome "!" icon */
	padding-right: 5px;
}

#message.warning::before
{
	display: table-cell;
	vertical-align: middle;
	position: relative;
	top: -1px;
}

#message.warning p
{
	display: table-cell;
}

.transparent
{
	border: none !important;
	background: transparent;
	pointer-events: none;
	text-overflow: ellipsis;
}

.center
{
	text-align: center;
}

#reservation
{
	width: 100%;
	max-width: 800px;
	box-sizing: border-box;
}

#reservation table
{
	width: calc(100% - 40px);
	border-spacing: 10px;
	margin: 0px 20px 0px 20px;
}

#reservation table#reservation-details
{
	border-spacing: 10px 0;
}

#reservation table .col-desc	{ width: 200px; }
#reservation table .col-input	{ width: 500px; }

#reservation #viewopeningtimes
{
	margin-left: 40px;
	display: inline-block;
	padding: 0px;
}

#reservation #viewopeningtimes i
{
	display: inline-block;
	border: none;
	position: relative;
	top: -2px;
	left: 2px;
	width: 20px;
	height: 20px;
	margin-right: 5px;
	font-size: 20px;
}

#dialog-opening-times
{
	position: relative;
	display: none;
	margin: 0px;
}

#dialog-opening-times h3
{
	display: none !important;
}

#dialog-opening-times .days
{
	position: relative;
	float: left;
	clear: both;
	font-size: 16px;
	font-weight: bold;
	width: auto;
	margin: 8px 0px 5px 0px;
}

#dialog-opening-times .times
{
	position: relative;
	float: left;
	clear: both;
	margin: 0px;
	font-size: 16px;
	padding: 0px 5px 2px 5px;
	width: 100%;
}

#dialog-opening-times .times span,
#dialog-opening-times .times small
{
	position: relative;
	display: inline-block;
}

#dialog-opening-times .times span.daytime
{
	width: 35%;
}

#dialog-opening-times .times span.dayhours
{
	width: 26%;
	margin: 0 2% 0 2%;
	text-align: center;
}

#dialog-opening-times .times small
{
	width: 35%;
	text-align: right;
}

#dialog-tables-unavailable p
{
	font-size: 16px;
	margin: 5px 0 10px 0;
}

#fadeout
{
	z-index: 2001;
	display: none;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	position: fixed;
	background-color: var(--fadeout-bg-color);
	-moz-opacity: 0.80;
	opacity: 0.80;
	filter: alpha(Opacity=80);
}

#fadeout-container::before
{
	content: "";
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}

#fadeout-container
{
	top: 0px;
	left: 0px;
	width: 100%;
	position: fixed;
	text-align: center;
	height: 100%;
	display: none;
	z-index: 2002;
}

#response
{
	display: none;
	width: 94%;
	min-width: 240px;
	max-width: 400px;
	padding: 1%;
	margin: 0 auto;
	position: relative;
	color: var(--response-color);
	border: none;
	border-radius: 6px;
	background-color: var(--response-bg-color);
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
	line-height: 1.6;
	font-size: 17px;
	text-align: left;
	vertical-align: middle;
	box-sizing: border-box;
}

#response h1
{
	margin: 0 auto;
}

#response span, #response p
{
	margin: 0 auto;
	position: relative;
	display: block;
	font-size: 18px;
}

#response span
{
	text-align: center;
}

#response a#close
{
	position: absolute;
	top: 0px;
	right: 0px;
	color: #444;
	padding: 16px;
	z-index: 99;
	font-size: 0px;
	cursor: pointer;
}

#response #close i
{
	font-size: 20px;
}

#response .success
{
	padding: 5px 15px;
	color: #080;
}

#response .fail
{
	padding: 5px 15px;
	color: #f00;
}

.main
{
	width: 100%;
	position: relative;
	margin: 0 auto;
}

.content
{
	display: block;
	font-size: 16px;
	font-family: var(--content-font);
	position: relative;
	padding: 10px;
	border: none;
	background-color: var(--content-bg-color);
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
	margin: 0px auto 5px auto;
}

.content:after
{
	display: table;
	content: "";
	clear: both;
}

.one-column
{
	width: 100%;
	float: left;
	clear: both;
}

.one-column, .two-column
{
	box-sizing: border-box;
}

#row-submit.one-column
{
	padding: 10px 40px 30px 40px;
	box-sizing: border-box;
}

/* Deposits */
#transaction-details
{
	position: relative;
	margin: 0;
	padding: 20px 40px;
}

/* Receipts */
#print-receipt i.fa
{
	font-size: 16px;
	position: relative;
	top: -2px;
}

.receipt
{
	float: left;
	position: relative;
	padding: 20px 15px 0px 0px;
}

.receipt strong
{
	float: left;
}

.receipt code
{
	max-width: 385px;
	white-space: pre-wrap;
	border: 1px solid #ccc;
	background: #fff;
	padding: 10px;
	clear: left;
	float: left;
}

.receipt span.double
{
	font-size: 200%;
	font-weight: bold;
	display: inline-block;
}

.receipt textarea
{
	display: none;
	width: 0px;
	height: 0px;
}

/* Footer */
#contact-phone, #contact-email
{
	display: inline-block;
}

.footer 
{
	width: 100%;
	height: 25px;
	font-size: 11px;
	text-align: center;
}

/* Datepicker */
#ui-datepicker-div
{
	display: none;
	margin-top: 5px;
	font-size: 16px !important;
}

.ui-widget { font-family: inherit !important; }
.ui-widget * { box-sizing: border-box; }
.ui-widget input, .ui-widget select { padding: 1px; height: 26px; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button
{
	font-family: Arial, 'Helvetica', sans-serif !important;
}
.ui-datepicker td span, .ui-datepicker td a
{
	text-align: center;
}
.ui-datepicker td
{
	width: 14.286%;
}

/* Button positions Next/Prev */
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { top: 4px !important; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 4px !important; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-prev-hover { left: 4px !important; }
.ui-datepicker .ui-datepicker-next, .ui-datepicker .ui-datepicker-next-hover { right: 4px !important; }


/* Timepicker */
.ui-timepicker-div dl {
	padding: 0px 10px;
}
.ui-timepicker-div dl dd {
	text-align: right;
	width: 75%;
	height: 35px;
	margin: 0;
	float: right;
}
.ui-timepicker-div dl dt {
	display: inline-block;
	line-height: 25px;
	width: 25%;
	height: 35px;
	clear: both;
}
.ui_tpicker_time {
	line-height: 25px;
	position: relative;
	right: 4px !important;
}
.ui_tpicker_hour > div, .ui_tpicker_minute > div, .ui_tpicker_second > div  { margin: 8px 0px; width: 64% !important; float: left; } 
.ui_tpicker_hour > span, .ui_tpicker_minute > span, .ui_tpicker_second > span { margin-right: 5px !important; float: right; }
.ui_tpicker_second, .ui_tpicker_millisec { display: none !important; }

/* FontAwesome icons */
.fa, .far, .fas {
	font-size: 24px;
	vertical-align: middle;
}

.ui-keyboard-spacer {
	margin: .1em;
}