@font-face {
	font-family: "Work Sans";
	src: url("WorkSans-Regular.woff");
}
@font-face {
	font-family: "Work Sans";
	src: url("WorkSans-Italic.woff");
	font-style: italic;
}
@font-face {
	font-family: "Work Sans";
	src: url("WorkSans-SemiBold.woff");
	font-weight: bold;
}
@font-face {
	font-family: "Work Sans";
	src: url("WorkSans-SemiBoldItalic.woff");
	font-style: italic;
	font-weight: bold;
}

:root {
	/* base-h with and without units because IE11 HSL colours need it without
	but filter hue-rotate needs it with! */
	--text: #222;
	--base-h: 277;
	--base-h-deg: 277deg;
	--base-s: 42%;
	--base-l: 27%;
	--accent: hsl( var(--base-h), var(--base-s), var(--base-l) );
	--links: hsl( var(--base-h), var(--base-s), 45% );
	--medium: hsl( var(--base-h), var(--base-s), 78% );
	--light: hsl( var(--base-h), var(--base-s), 87% );
	--background: hsl( var(--base-h), var(--base-s), 96% );
	--shadow: 3px 3px 6px hsla( var(--base-h), var(--base-s), var(--base-l), 0.12 );
}

main, section, article {
	display: block;	/* IE */
}

html, body {
	margin: 0;
	padding: 0;
	color: var(--text);
	font-family: "Work Sans", sans-serif;
	font-size: 12pt;
	line-height: 1.3;
}

div#container {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
	justify-content: start;
}

a {
	color: var(--links);
}

main {
	margin: 0;
	padding: 0;
	flex: 1 0 auto;
	background-color: var(--background);
}

section.content {
	margin: 0 auto;
	padding: 0;
	max-width: 1000px;
	display: flex;
}

article {
	width: fit-content;
}

header {
	margin: 0;
	padding: 0;
	height: auto;
	position: sticky;
	width: 100%;
	top: 0;
	color: white;
	background-color: var(--accent);
	z-index: 1500;	/* leaflet map controls use up to 1000 */
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	flex-shrink: 0;
}

header img {
	height: 2em;
	width: auto;
	padding: 0.5em;
	display: inline-block;
	margin: 0;
	vertical-align: bottom;
}

nav {
	padding: 0;
	margin: 0;
	height: auto;
	display: inline-block;
}

nav a {
	border-left: 3px groove var(--accent);
	color: white;
	text-decoration: none;
	display: inline-block;
	line-height: 3em;
	padding: 0 0.5em;
	margin: 0;
}

footer {
	margin: 0;
	padding: 0.5em;
	color: white;
	background-color: var(--accent);
	text-wrap: balance;
}

footer p {
	font-size: 12pt;
	margin: 0;
}

h1, h2, h3 {
	font-family: "Work Sans";
	font-weight: bold;
	font-variant: small-caps;
	margin: 0 0 0.5em 0;
	padding: 0;
	color: var(--accent);
}

h1 {
	font-size: 160%;
}

h2 {
	font-size: 140%;
}

h3 {
	font-size: 120%;
}

h1:not(:first-child) {
	margin-top: 1em;
}

h2:not(:first-child) {
	margin-top: 1em;
}

h3:not(:first-child) {
	margin-top: 1em;
}

p, ul {
	margin: 0 0 0.7em 0;
	padding: 0;
}

ul {
	padding-left: 1em;
}

.hero {
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
}

.hero img {
	width: 100%;
	height: auto;
}

article {
	margin: 1em 0;
	padding: 0 0.5em;
	flex: 2;
	align-content: top;
}

aside {
	background-color: var(--medium);
	margin: 1em 0.5em;
	box-shadow: var(--shadow);
	padding: 0.5em;
	flex: 1;
}

div.gallery {
	text-align: center;
}

div.gallery a {
	display: inline-block;
	padding: 0;
	height: 112px;
	width: 112px;
	background-color: white;
	margin: 0.2em;
	box-shadow: var(--shadow);
	transform: rotate(-3deg);
	transition: transform 0.3s;
}

div.gallery a:hover {
	transform: rotate(0);
}

div.gallery img {
	position: absolute;
	padding: 0;
	margin: auto;
	width: auto;
	height: auto;
	max-width: 100px;
	max-height: 100px;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

div.propertylist {
	text-align: center;
}

div.propertylisting {
	display: inline-block;
	margin: 0 0.5em 0.5em 0;
	padding: 0.5em;
	background-color: white;
	box-shadow: var(--shadow);
}

div.propertylisting a.picbox {
	display: inline-block;
	padding: 0;
	height: 280px;
	width: 280px;
	margin: 0;
	transform: rotate(0);
}

div.propertylisting a.picbox img {
	position: absolute;
	padding: 0;
	margin: auto;
	width: auto;
	height: auto;
	max-width: 280px;
	max-height: 280px;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

div.propertylisting a {
	text-decoration: none;
	color: black;
}

div.propertylisting p {
	margin: 0;
}

div.propertylisting p.bold {
	font-weight: bold;
}

div.sorrybox {
	position: absolute;
	top: 50%;
	left: 50%;
	display: inline-block;
	transform: translate(-50%, -50%);
	margin: 0;
	padding: 1em 1em 0.5em calc(2em + 64px);
	background-color: white;
	box-shadow: var(--shadow);
	z-index: 1500;
	text-align: left;
	background-image: url('sad-tear.svg');
	background-repeat: no-repeat;
	background-position: 1em center;
}

div.smallmap {
	box-sizing: border-box;
	width: 100%;
	height: 40vh;
	box-shadow: var(--shadow);
}

div.largemap {
	width: 100%;
	flex: 1;
}

table {
	border-collapse: collapse;
}

td {
	border: 1px solid #444;
	padding: 0.25em;
}

.icon {
	display: inline;
	width: 1em;
	height: 1em;
}

div.social {
	text-align: center;
}

div.social a {
	display: inline-block;
	margin-left: 1em;
	margin-right: 1em;
	text-decoration: none;
	color: black;
}

div.social a img {
	width: 4em;
	height: 4em;
}

main.landing {
	background-color: transparent;
}

main.landing section {
	max-width: 600px;
}

main.landing a {
	display: block;
	background-color: var(--light);
	padding: 0.5em 1em;
	margin: 3em 0;
	box-shadow: var(--shadow);
	text-decoration: none;
	color: inherit;
}

main.landing a p {
	margin-bottom: 0.2em;
}

div#background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: -100;
	overflow: hidden;
}

div#backimage {
	width: 100vw;
	height: 100vh;
	background-image: url("back0.jpg");
    background-size: cover;
    background-position: center;
	filter: blur(3px) brightness(1.00);
	transform: scale(1.05);
}

svg.gallerycontrols {
	fill: var(--background);
	stroke: var(--accent);
	stroke-width: 4;
	width: 40px;
	height: 40px;
}

div#splash {
	height: 100vh;
	width: 100vw;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

div#splash a {
	text-decoration: none;
}

div.hidden {
	display: none;
}

hr {
	height: 1px;
	width: 100%;
	border: none;
	border-top: 1px solid var(--text);
}

.nobreak {
	white-space: nowrap;
}


/* for wider screens, change up the layout a bit */

@media only screen and (min-width: 700px) {
	body {
		font-size: 14pt;
	}
	aside {
		margin: 1.5em 0.5em 1em 1.5em;
		position: sticky;
		top: 103px;
	}
	header {
		height: auto;
	}
	header img {
		height: 3em;
	}
	nav a {
		line-height: 4em;
		padding: 0 1em;
	}
	div.gallery a {
		height: 142px;
		width: 142px;
	}
	div.gallery img {
		max-height: 130px;
		max-width: 130px;
	}
}

@media only screen and (max-width: 410px)  {
	header {
		font-size: 10pt;
	}
}

/* tweak the 'Sorry!' popup for portrait screens */

@media (orientation: portrait) {
	div.sorrybox {
		padding: calc(2em + 64px) 1em 0.5em 1em;
		text-align: center;
		background-position: center 1em;
	}
}




/* overrides for leaflet styles */

.marker-cluster {
	background-color: rgba(255,0,0,0.5);
}

.marker-cluster div {
	color: white;
	background-color: #FF0000;
	font-size: 14pt;
	font-weight: bold;
}

.leaflet-marker-icon {
	filter: saturate(var(--base-s)) hue-rotate(var(--base-h-deg));
}

.leaflet-popup, .leaflet-rrose {
	width: 250px;
	font-family: "Work Sans", sans-serif;
	font-size: 12pt;
}

.leaflet-popup-content, .leaflet-rrose-content {
	text-align: center;
}

.leaflet-popup-content img, .leaflet-rrose-content img  {
	max-width: 100%;
	margin-top: 0.5em;
}


/* IE bodge to make map visible

@media screen and (min-width:0\0) {
	#map {
		min-height: 90vh;
	}
}
 */