h1,h2,h3,h4,h5,h6 {
	font-family: 'Playfair Display', sans-serif;
}
h1.title {
	text-align: center;
	border-top: 1px solid #222;
	border-bottom: 1px solid #222;
	padding: 8px 0 12px 0;
}
p {
	margin-bottom: 2.5em;
}
p.lowmargin {
	margin-bottom: 0.5em;
}
.sectionmarker {
	display: block;
	width: 120px;
	opacity: 0.8;
	margin: 0 auto;
	margin-bottom: 2.6em;
}
html {
	font-family: 'Albert Sans', 'Lato', sans-serif;
	font-size: 1.3em;
	line-height: 1.6;
	color: #323232;
}
body {
	background-attachment: fixed;
	background-position: top right;
	background-image: url(/img/greenbg-adjusted.jpeg);
}
div.bg-mountain {
	background-image: url(/img/vg-mountain.jpeg);
	background-position: left;
}
div.smiling-with-lobster {
	background-image: url(/img/info_.jpeg);
}
div.beers {
	background-image: url(/img/beers-cropped.jpeg);
}
div.sandbar {
	background-image: url(/img/sandbar.jpeg);
}
body,html {
	margin: 0;
	padding: 0;
}
.centre-container {
	min-width: 300px; /* note - ineffective because we redesign the page when falling below 650px */
	margin: 0 0 0 60%;
	padding: 10% 7% 0 7%;
}
.centre-container.has-guest {
	padding: 0% 7% 0 7%;
}
.centre {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}
#ctr-1 {
	z-index: 1;
}
#ctr-2 {
	opacity: 0;
	z-index: 2;
}
div.image-container.visible, div.image-container.visible#ctr-2 {
	opacity: 1.0;
}
@media (max-width: 650px) {
	.centre-container {
		width: 80%;
		margin: 0 auto;
		padding: 0;
	}
	div.image-container {
		width: 80%;
		aspect-ratio: 768/661;
		background-size: cover;
		margin: 1em auto;
	}
	.centre {
		width: 90%;
	}
	#ctr-2 {
		opacity: 0 ! important;
	}
}
@media (min-width: 651px) {
	div.image-container {
		background-repeat: no-repeat;
		position: fixed;
		top: 0;
		left: 0;
		height: 100vh;
		width: 60%;
		background-size: cover;
		background-position: center;
		transition: opacity 0.5s;
	}
}
form.access-code input {
	display: block;
	margin: 1em auto;
}
form.access-code input[type=text] {
	font-size: 1.3em;
	text-align: center;
	width: 80%;
	background-color: #f7ffe1;
	border: 1px solid #333333;
}
form.access-code input[type=text]:focus {
	background-color: #ffffff;
}
input[type=submit] {
	font-size: 1.3em;
	padding: 4px 10px;
	font-family: 'Albert Sans', 'Lato', sans-serif;
	border-radius: 6px;
	border: 1px solid #c7cfb1;
	background-color: #f7ffe1;
	filter: drop-shadow(12px 12px 10px #abce59);
}
input[type=submit]:hover {
	background-color: #ffffff;
	border: 1px solid #333333;
}
input[type=submit]:active {
	transform: translate(3px, 3px);
	filter: drop-shadow(9px 9px 10px #abce59);
}
hr {
	display: block;
	height: 1px;
	border: 0;
	width: 80%;
	background-color: #444;
	margin: 2.5em auto;
	padding: 0;
}
.button-link {
	font-size: 1.4em;
	display: block;
	width: 40%;
	margin: 0 auto 2.0em auto;
	text-align: center;
	padding: 4px 8px;
	border-radius: 6px;
	border: 3px solid #f7ffe1;
	background-color: #f7ffe1;
	filter: drop-shadow(12px 12px 10px #abce59);
}
.button-link:hover {
	background-color: #ffffff;
	border: 3px solid #333333;
}
.button-link:active, .button-link:focus {
	text-decoration-thickness: 4px;
}
.button-link:link, .button-link:visited {
	color: #000;
}
.rsvp-complete {
	text-align: center;
	font-size: 1.4em;
}
.simple-info {
	border-top: 3px solid #323232;
	border-bottom: 1px solid #323232;
	margin-bottom: 2.5em;
	width: 100%;
}
.simple-info td, .simple-info th {
	padding-bottom: 0.6em;
	padding-top: 0.6em;
}
.simple-info th {
	vertical-align: top;
}
.guest-info {
	position: relative;
	right: -35%;
	text-align: right;
	width: 70%;
	margin-bottom: 3.5em;
}
.guest-info p {
	margin-bottom: 0.5em;
}
.question {
	margin-bottom: 2em;
	position: relative;
}
.question .number {
	color: #888;
	text-align: right;
	position: absolute;
	display: block;
	width: 1em;
	left: -1.5em;
}
.question label {
	display: block;
	padding-left: 5%;
}
.question textarea {
	display: block;
	width: 80%;
	margin: 0 auto;
	height: 5.5em;
	font-family: 'Albert Sans', 'Lato', sans-serif;
}
.rsvp input[type=submit] {
	margin: 1em auto 2.5em auto;
	display: block;
}
.warning {
	font-weight: bold;
	border: 3px solid #a44;
	padding: 3px;
}
.navigation {
	position: fixed;
	right: 40%;
	top: 0;
	z-index: 10;
}
.navigation ul {
	text-align: right;
	margin: 2em 0 0 0;
	padding: 0;
	list-style-type: none;
}
.navigation li a {
	display: block;
	width: 8em;
	border: 2px solid rgba(247, 255, 225, 0.8);
	background-color: rgba(247, 255, 225, 0.8);
	background-clip:padding-box;
	border-radius: 8px;
	backdrop-filter: blur(8px);
	margin: 6px 6px 0 0;
	padding: 10px;
}
.navigation li a:hover {
	text-decoration-thickness: 5px;
	background-color: rgba(247, 255, 225, 1.0);
	border: 2px solid rgba(247, 255, 225, 0.8);
}
.navigation li a.active:link, .navigation li a.active:visited {
	border: 2px solid #000;
	text-decoration-thickness: 3px;
}
.navigation li a:link, .navigation li a:visited {
	color: #222;
}
.navigation>span, .navigation input {
	display: none;
}
@media (max-width: 650px) {
	.navigation {
		top: 0%;
		left: 0%;
		padding-right: 3px;
		padding-bottom: 3px;
		right: auto;
	}
	.navigation input {
		position: relative;
		display: block;
		width: 60px;
		height: 60px;
		opacity: 0.0;
		z-index: 12;
	}
	.navigation div {
		border: 1px solid #ccc;
		background-color: rgba(255, 255, 255, 0.3);
		width: 64px;
		height: 64px;
		position: absolute;
		top: 3px;
		left: 3px;
	}
	.navigation span {
		background-color: #ccc;
		border: 5px solid #ccc;
		display: block;
		width: 40px;
		height: 1px;
		border-radius: 10px;
		margin: 8px auto 0 auto;
		z-index: 11;
		transition: background-color 0.5s, border-color 0.5s;
	}
	.navigation input:checked ~ div span {
		background-color: #000;
		border: 5px solid #000;
	}
	.navigation ul {
		text-align: left;
		margin: 18px 0 0 8px;
		background-color: rgba(245, 255, 225, 1.0);
		display: none;
		opacity: 0;
		transition: opacity 0.5s;
	}
	.navigation input:checked ~ ul {
		display: block ! important;
		opacity: 1;
	}
	.navigation li a {
		background-color: rgba(247, 255, 225, 1.0);
	}
}
p.small {
	font-size: 80%;
}
