/* base styles */

html
{
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

*, *:before, *:after
{
	box-sizing: inherit;
	margin: 0;
	padding: 0;
}

body
{
	overflow: hidden; /* to lock scrolling while preloader does its thing */
	background-color: #ffffee;
	color: #332222; /* global text color */
}


b, strong
{
	font-family: 'gt-america-mono-medium';
	font-weight: inherit;
}

p, ul, li
{
	font-family: 'gt-america-mono-light';
	letter-spacing: -0.04rem;
}

a
{
	text-decoration-thickness: 1px;
	cursor: pointer;
	color: #332222;
}

button:hover
{
	cursor: pointer;
}

h1
{
	font-family: 'gt-america-mono-medium';
	font-size: 2rem;
	font-weight: inherit;
	line-height: 100%;
	text-transform: uppercase;
	text-align: center;
}

h2
{
	font-family: 'gt-america-mono-medium';
	font-size: 0.875rem;
	font-weight: inherit;
	margin-bottom: 1.25rem;
	text-transform: uppercase;
}

hr
{
	border: none;
	border-top: solid 1px #332222;
}

img
{
	display: block;
}

li:first-child
{
	margin-top: 1.25rem;
}

li
{
	margin-left: 1rem;
}



/* global content styles */

.home
{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	text-align: center;
}

.centered
{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
}

.wide
{
	padding: 0 10rem;
}

.compact
{
	padding: 0 20rem;
}

.standard p
{
	font-size: 1rem;
}

.standard p:not(:last-child)
{
	margin-bottom: 1.25rem;
}

.standard h2
{
	margin-top: 2.5rem;
}

.large p
{
	font-size: 2rem;
	font-family: 'gt-america-mono-thin';
}

.large p:not(:first-child)
{
	margin-top: 1.25rem;
}

.standard p, .large p, .standard li
{
	line-height: 150%;
}

.standard ul
{
	margin-bottom: 1.25rem;
}

.offset
{
	margin-top: 15rem;
	margin-bottom: 10rem;
}

.note
{
	margin: 1.25rem 0;
	line-height: 150%;
	opacity: 0.4;
}

.carousel
{
	display: flex;
	overflow: auto;
	white-space: nowrap;
	margin: 2.5rem 0;

	-ms-overflow-style: none;  /* hide carousel scrollbar ie/edge */
  scrollbar-width: none;  /* hide carousel scrollbar firefox */
}

.carousel::-webkit-scrollbar
{
  display: none; /* hide carousel scrollbar chrome/safari/opera */
}

.carousel img
{
	width: 30rem;
}

.single
{
	width: 30rem;
	margin: auto;
	left: 0;
	right: 0;
	margin-top: 2.5rem;
	margin-bottom: 2.5rem;
}

.tip
{
  border: 1px solid #332222;
  border-radius: 0.625rem;
	padding: 1.25rem;
	margin-bottom: 2.5rem;
	display: flex;
}

.tip img
{
	width: 2.5rem;
}

.tip p
{
	margin-left: auto;
	padding-left: 1.25rem;
}

a.hyperlink
{
	text-decoration: underline;
	text-decoration-thickness: 1px;
	cursor: pointer;
	color: #332222;
}

.green
{
	color: #44cc88;
}

.red
{
	color: #ff5544;
}



/* header and footer styles */

#overlay
{
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 2;
	pointer-events: none;
}

#overlay a, #overlay p
{
	pointer-events: auto;
}

*[id^='header'], #footer
{
	position: absolute;
	width: 100%;
	display: flex;
	align-items: center;
	padding: 2.5rem;
}

*[id^='header']
{
	background: linear-gradient(180deg, rgba(255,255,238,1.0) 0%, rgba(17,153,170,0) 100%);	
	top: 0;
}

#header-mobile
{
	display: none;
}

#footer
{
	background: linear-gradient(0deg, rgba(255,255,238,1.0) 0%, rgba(17,153,170,0) 100%);
	bottom: 0;
}

#footer credit
{
	margin-left: auto;
}

#footer img
{
	height: 1.875rem;
	content: url('../img/ui/invisible-giant-logo-closed.svg');
}

#footer img:hover
{
	content: url('../img/ui/invisible-giant-logo-open.svg');
}

nav
{
	text-align: right;
}

weather, nav
{
	width: 33%;
}

brand
{
	width: 34%;
}

brand img
{
	content: url('../img/ui/lodgelodge-logo.svg');
	height: 6.25rem;
	margin: 0 auto;
}

nav a
{
	font-family: 'gt-america-mono-light';
	letter-spacing: -0.04rem;
	font-size: 1rem;
	text-decoration: none;
	margin-left: auto;
}

.cta, .reception
{
	color: #332222;
	font-weight: inherit;
	padding: 0.625rem 1.25rem;
	border-radius: 2rem;
	text-decoration: none;
}

.cta
{
	font-family: 'gt-america-mono-medium';
	font-size: 0.875rem;
	letter-spacing: 0.04rem;
	border: 2px solid #332222;
	text-transform: uppercase;
}

.reception
{
	display: block;
	font-family: 'gt-america-mono-light';
	font-size: 1rem;
	letter-spacing: -0.04rem;
	width: 15rem;
	border: 1px solid #332222;
	text-align: center;
	margin: 0 auto;
}

.reception:not(:first-child)
{
	margin-top: 0.625rem;
}


/* admin styles */
.feedback
{
	text-align: center;
	margin-bottom: 1.25rem;

	-webkit-animation: blink 0.8s;
	-webkit-animation-iteration-count: 4;
	-moz-animation: blink 0.8s;
	-moz-animation-iteration-count: 4;
	-o-animation: blink 0.8s;
	-o-animation-iteration-count: 4;
}


/* booking widget styles */

#booking
{
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 3;
	background-color: rgba(51,51,34, 0.16);
	overflow: auto;
}

#widget
{
	position: absolute;
	background-color: rgba(255,2555,238, 0.96);
	color: #332222;
	border: solid 1px #332222;
	border-radius: 0.625rem;
	margin-top: 1.25rem;
	margin-bottom: 1.25rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}

#widget header
{
	display: flex;
	align-items: center;
	margin-bottom: 1.25rem;
}

#widget header links
{
	margin-left: auto;
}

#widget header links a
{
	font-family: "gt-america-mono-light";
	text-decoration: underline;
	text-decoration-thickness: 1px;
	letter-spacing: -0.04rem;
}

#dates
{
	margin-top: 1.25rem;
}

*[id^="error"]
{
	margin-top: 0.625rem;
	display: none;
}

*[id^="error"] p
{
	color: #ff5544;

	-webkit-animation: blink 0.8s;
	-webkit-animation-iteration-count: 2;
	-moz-animation: blink 0.8s;
	-moz-animation-iteration-count: 2;
	-o-animation: blink 0.8s;
	-o-animation-iteration-count: 2;
}

row
{
	width: fit-content;
	display: block;
	margin: 0 auto;
}

row:not(:first-child)
{
	margin-top: 0.3125rem;
}

dot
{
	display: inline-block;
	font-size: 0.625rem;
	border-radius: 0.3125rem;
	padding: 0.46875rem;
	line-height: 125%;
	text-transform: uppercase;
}

dot:not(:first-child)
{
	margin-left: 0.3125rem;
}

.requested_available
{
	font-family: 'gt-america-mono-medium';
	background: rgba(153,255,187,1.0);
}

.requested_unavailable
{
	font-family: 'gt-america-mono-medium';
	text-decoration: line-through;
	background: rgba(51,51,34,0.04);
}

.unavailable
{
	font-family: 'gt-america-mono-light';
	text-decoration: line-through;
	background: rgba(51,51,34,0.04);
}

.available
{
	font-family: 'gt-america-mono-light';
	background: rgba(153,255,187,0.32);
}

day, date, rate
{
	display: block;
	text-align: center;
}

.goodnews
{
	color: #44cc88;
	margin-top: 1.25rem;
}

.badnews
{
	color: #ff5544;
	margin-top: 1.25rem;
}

#widget footer
{
	margin-top: 1.25rem;
}

#widget footer hr
{
	margin-top: 1.25rem;
	margin-bottom: 1.25rem;
}

#widget footer cost
{
	display: flex;
	align-items: center; 	
}

#widget footer cost p:last-child
{
	margin-left: auto;
}

.inactive
{
	pointer-events: none;
	opacity: 0.24;
}

.adjusted
{
	font-family: "gt-america-mono-light-italic";
	margin-top: 1.25rem;

	-webkit-animation: blink 0.8s;
	-webkit-animation-iteration-count: 4;
	-moz-animation: blink 0.8s;
	-moz-animation-iteration-count: 4;
	-o-animation: blink 0.8s;
	-o-animation-iteration-count: 4;
}


/* checkout styles */

#order item
{
	display: flex;
	align-items: center;
}

#order item:first-child
{
	margin-top: 1.25rem;
}

#order item:not(:first-child)
{
	margin-top: 0.3125rem;
}

#order item subtotal
{
	margin-left: auto;
}

#totals line
{
	display: flex;
	align-items: center;
	margin: 0.625rem 0;
}

#totals line:last-child
{
	margin-bottom: 0;
}

#totals line p:last-child
{
	margin-left: auto;
}

#order hr
{
	opacity: 0.24;
}


/* payment styles */

#purchase p
{
	margin: 0;
}

#purchase line
{
	display: flex;
	align-items: top;
}

#purchase line:first-child
{
	margin-top: 1.25rem;
}

#purchase line p:last-child
{
	margin-left: auto;
}


/* other form styles */

select
{
	appearance: none;
	background-image: url('../img/ui/dropdown.svg');
	background-repeat: no-repeat;
	background-position: right 0.625rem top 50%;
	background-size: 0.625rem auto;
}

input[type=text], input[type=number], input[type=password], input[type=email], input[type=tel], textarea, select
{
	color: #332222;
	background-color: rgba(51,34,34, 0.04);
	font-family: 'gt-america-mono-light';
	font-size: 1rem;
	font-weight: inherit;
	letter-spacing: -0.04rem;
	padding: 0.625rem;
	border-radius: 0.3125rem;
	border: 1px solid rgba(153,153,153, 0.32);
	-webkit-appearance: none;
	-moz-appearance: none;
	text-align: left;
	text-align: -moz-left;
	text-align: -webkit-left;
	width: 100%;
}


textarea
{
	height: 10rem;
	resize: none;
	line-height: 150%;
}

input.qty_voucher
{
	display: inline;
	vertical-align: middle;
	text-align: center;
}

input.qty_voucher
{
	width: 5rem;
}

input::-webkit-outer-spin-button, input::-webkit-inner-spin-button
{
	-webkit-appearance: none;
	margin: 0;
}

input[type="radio"]
{
  -webkit-appearance: none;
  appearance: none;
  background-color: #ffffff;
  color: #332222;
  width: 1.875em;
  height: 1.875em;
  border: 1px solid #332222;
  border-radius: 50%;
	cursor: pointer;
}

input[type="radio"], label, input[type="submit"]
{
	cursor: pointer;
}

input[type="radio"]:checked
{
  background-color: #332222;
  color: #332222;
}

img.stepper
{
	height: 2.5rem;
	display: inline;
	vertical-align: middle;	
}

input[type="submit"], button
{
	font-size: 0.875rem;
	font-family: 'gt-america-mono-medium';
	font-weight: inherit;
	color: #332222;
	letter-spacing: 0.04rem;
	text-transform: uppercase;
	background-color: #ffffee;
	border-radius: 0;
	border: 2px solid #332222;
	box-shadow: 2px 2px #332222;
	padding: 0.625rem 1.25rem;
	text-align: center;
	width: 100%;
}

input[type="submit"]:disabled
{
    opacity: 0.4;
}

input[type="submit"]:hover, button:hover
{
	background-color: #99ffbb;
	box-shadow: 4px 4px #332222;
}

input[type="submit"]:active
{
	background-color: #eeeeee;
	box-shadow: 0px 0px;
}

label
{
	font-family: 'gt-america-mono-light';
	line-height: 125%;
	letter-spacing: -0.04rem;
}

p.section
{
	font-family: 'gt-america-mono-medium';
	font-weight: inherit;
	font-size: 0.875rem;
	letter-spacing: 0.04rem;
	margin: 2.5rem 0 1.25rem 0;
	text-transform: uppercase;
}

p.label
{
	font-size: 0.75rem;
	letter-spacing: 0.02rem;
	text-transform: uppercase;
	margin-top: 1.25rem;
	margin-bottom: 0.625rem;
}

p.alert
{
	color: #ff5544;
	margin-top: 0.3125rem;
	display: none;
}

p.stripe
{
	font-size: 0.75rem;
	letter-spacing: 0;
	text-transform: uppercase;
	line-height: 100%;
	display: inline;
	vertical-align: middle;
}

.checkity
{
	margin-top: 1.25rem;
  display: block;
  position: relative;
  padding-left: 1.875rem;
	cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* hide the default checkbox */
.checkity input
{
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}

/* render the new checkbox */
.checkmark
{
  position: absolute;
  top: 0;
  left: 0;
  height: 1.25rem;
  width: 1.25rem;
	background-color: rgba(51,34,34, 0.16);
}

.checkity:hover input ~ .checkmark
{
	background-color: rgba(51,34,34, 0.32);
}

.checkity input:checked ~ .checkmark
{
	background-color: rgba(51,34,34, 0.64);
}

.checkmark:after
{
	content: "";
	position: absolute;
	display: none;
}

.checkity input:checked ~ .checkmark:after
{
	display: block;
}

.checkity .checkmark:after
{
  left: 0.475rem;
  top: 0.25rem;
  width: 0.3125rem;
  height: 0.625rem;
  border: solid white;
  border-width: 0 1px 1px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}


/* preloader and warning styles */

#page
{
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 1;
	overflow: auto; /* to enforce margin bottom */
}

#preloader, *[id^='warning']
{
	position: fixed;
	width: 100%;
	height: 100%;
}

#preloader
{
	z-index: 4;
	background-color: #99ffbb;
}

#preloader img
{
	position: absolute;
	margin: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 10rem;
}

*[id^='warning']
{
	display: none;
	background-color: #ffffee;
}

#warning-search
{
	z-index: 5;
}

#warning-reset
{
	z-index: 6;
}

#warning-wait
{
	z-index: 7;
}

#warning-rotate
{
	z-index: 8;
}

*[id^='warning'] items
{
	position: absolute;
	width: 100%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

*[id^='warning'] p
{
	font-family: 'gt-america-mono-light';
	font-size: 1rem;
	text-align: center;
	color: #332222;

	-webkit-animation: blink 0.8s;
	-webkit-animation-iteration-count: infinite;
	-moz-animation: blink 0.8s;
	-moz-animation-iteration-count: infinite;
	-o-animation: blink 0.8s;
	-o-animation-iteration-count: infinite;
}

@-webkit-keyframes blink {
	0% {
			opacity: 1;
	}
	50% {
			opacity: 0;
	}
	100% {
			opacity: 1;
	}
}

@-moz-keyframes blink {
	0% {
			opacity: 1;
	}
	50% {
			opacity: 0;
	}
	100% {
			opacity: 1;
	}
}

@-o-keyframes blink {
	0% {
			opacity: 1;
	}
	50% {
			opacity: 0;
	}
	100% {
			opacity: 1;
	}
}