:root {
	--colour-bright-green: #81c92a;
	--colour-bright-blue: #2c95e0;
	--colour-bright-red: #ff3a8d;
	--colour-bright-yellow: #f6d600;
	
	--colour-dark-green: #006622;
	--colour-dark-blue: #003366;
	--colour-dark-red: #dd0e2b;
	--colour-dark-yellow: #ff9900;
	
	--colour-bright-grey: #888;
	--colour-brighter-green: #a6e559;
	--colour-bright-purple: #c64cff;
}

	@supports (color: color(display-p3 1 1 1 / 1)) {
		:root {
			--colour-bright-grey: color(display-p3 0.48 0.50 0.52 / 1);
			--colour-brighter-green: color(display-p3 0.70 0.90 0.40 / 1);
			
			--colour-bright-green: color(display-p3 0.6 0.8 0.3 / 1);
			--colour-bright-blue: color(display-p3 0.30 0.6 0.90 / 1);
			--colour-bright-red: color(display-p3 1 0.30 0.55 / 1);
			--colour-bright-yellow: color(display-p3 0.95 0.85 0.20 / 1);
		}
	}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
	font-size: 24px;
	font-family: sans-serif;
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
/* 	scroll-behavior: smooth; */
}

body {
	margin: 0;
	padding:0;
	background-color: white;
	
	color: #111;
	font-weight: 300;
	font-family: 'Verlag A', 'Verlag B', serif;
	line-height: 1.6;
	
}

.container {
	max-width: 940px;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
}

.full-width {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

.cke {
	display: flex;
	justify-content: space-between;
}


.visuallyhidden {
		border: 0;
		clip: rect(0 0 0 0);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
	}

/* !SECTIONS */

.region-row {
	position: relative;

	max-width: 100vw;
	margin-left: auto;
	margin-right: auto;

	padding: 2rem 0;
	padding: 2vw 0;
}


/*
.clip-top {
	padding-top: 6rem;
	-webkit-clip-path: polygon(0 4rem, 0 100%, 100vw 100%, 100vw 0);
	        clip-path: polygon(0 4rem, 0 100%, 100vw 100%, 100vw 0);
}

.clip-bottom {
	padding-bottom: 6rem;
	-webkit-clip-path: polygon(0 0, 100vw 0, 100vw calc(100% - 4rem), 0 100%);
	        clip-path: polygon(0 0, 100vw 0, 100vw calc(100% - 4rem), 0 100%);
}

.clip-both {
	padding-top: 6rem;
	padding-bottom: 6rem;
	-webkit-clip-path: polygon(0 4rem, 100vw 0, 100vw calc(100% - 4rem), 0 100%);
	        clip-path: polygon(0 4rem, 100vw 0, 100vw calc(100% - 4rem), 0 100%);
}
*/


.clip-top {
	padding-top: 6vw;
	-webkit-clip-path: polygon(0 4vw, 0 100%, 100vw 100%, 100vw 0);
	        clip-path: polygon(0 4vw, 0 100%, 100vw 100%, 100vw 0);
}

.clip-bottom {
	padding-bottom: 6vw;
	-webkit-clip-path: polygon(0 0, 100vw 0, 100vw calc(100% - 4vw), 0 100%);
	        clip-path: polygon(0 0, 100vw 0, 100vw calc(100% - 4vw), 0 100%);
}

.clip-both {
	padding-top: 6vw;
	padding-bottom: 6vw;
	-webkit-clip-path: polygon(0 4vw, 100vw 0, 100vw calc(100% - 4vw), 0 100%);
	        clip-path: polygon(0 4vw, 100vw 0, 100vw calc(100% - 4vw), 0 100%);
}


.clip-bottom + .clip-top,
.clip-bottom + .clip-both,
.clip-both + .clip-top,
.clip-both + .clip-both {
	margin-top: -4rem;
	margin-top: calc(-4rem - 1px); /* prevent potential gap caused by rounding */
/* 	margin-bottom: -1px; */
}
.clip-bottom + .clip-top,
.clip-bottom + .clip-both,
.clip-both + .clip-top,
.clip-both + .clip-both {
	margin-top: -4vw;
	margin-top: calc(-4vw - 1px); /* prevent potential gap caused by rounding */
/* 	margin-bottom: -1px; */
}

.no-padding-bottom {
	padding-bottom: 0;
}
.no-padding-top {
	padding-top: 0;
}
.no-padding-both {
	padding-top: 0;
	padding-bottom: 0;
}

.reduced-padding-bottom {
	padding-bottom: 3rem;
	padding-bottom: 3vw;
}
.reduced-padding-top {
	padding-top: 3rem;
	padding-top: 3vw;
}
.reduced-padding-both {
	padding-top: 3rem;
	padding-top: 3vw;
	padding-bottom: 3rem;
	padding-bottom: 3vw;
}


.wood {
	min-height: 1rem;

	background-image: url(/img/wood.jpg);
	background-position: center center;
	background-repeat: repeat;
	background-size: cover;
}

.white {
	background-color: white;
}

.green {
    background-color: #a6e559;
    background-color: var(--colour-bright-green);
}

.dark-green {
	background-color: #006622;
    background-color: var(--colour-dark-green);
}

.blue {
	background-color: #2c95e0;
	background-color: var(--colour-bright-blue);
	
	color: white;
}

.dark-blue {
	background-color: #003366;
    background-color: var(--colour-dark-blue);
}

.yellow {
	background-color: #f6d600;
	background-color: var(--colour-bright-yellow);
	
	color: black;
}

.dark-yellow {
    background-color: #ff9900;
    background-color: var(--colour-dark-yellow);
}

.red {
	background-color: #ff3a8d;
	background-color: var(--colour-bright-red);

	color: white;
}

.dark-red {
	background-color: #dd0e2b;
    background-color: var(--colour-dark-red);
}

.purple {
	background-color: #c64cff;
	background-color: var(--colour-bright-purple);
	
	color: white;
}

.black {
	background-color: #222;
	
	color: #888;
	color: var(--colour-bright-grey);
}

.grey {
	background-color: #eee;
	
	color: black;
}

.banner,
.full {
    	display: block;
		position: relative;

		max-width: 100vw;
		margin: 0;
		margin-left: auto;
		margin-right: auto;
		padding: 0;

		width: 100%;
		border-radius: 0;
}
	.banner a {
		display: block;
		padding: 0;
		margin: 0;
	}

	.full p {
		margin: 0;
		padding: 0;
	}

	.banner img,
	.full img {
		display: block;
		width: 100%;
		border-radius: 0;
	}

	.triangle-bottom + .full {
		padding-top: 0;
	}
	
	
		
/* !NAVIGATION */

nav {
	width: 100%;
}

	nav ul {
    			margin: 0;
    			padding: 0;
    			list-style-type: none;
    		}

    		nav li {
	    			padding: 0;
	    			margin: 0;

	    			line-height: 1em;
	    		}

	nav a {
		text-decoration: underline;
	}

/* !.site-header */

.site-header {
	position: relative;
	padding: 0;
	color: white;
	
	/*
	font-family: Helvetica, 'Segoe UI', Arial, sans-serif;
	font-size: .6rem;
	*/
	
	font-family: 'Roboto', sans-serif;
	font-size: .6rem;
	
	z-index: 1;
}

	.site-header-container {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-top: 0.75em;
		padding-bottom: 0.5em;
	}
	
	.site-header a,
	.site-header button {
		color: #000;
	}	
	
	.site-title {
		padding: 0.25em 0.75em 0.2em;
		margin-left: -.75em;
		border-radius: 1em;
		
/* 		color: #000; */
    	font-family: 'Verlag A', 'Verlag B', serif;
    	font-size: 1rem;
    	font-weight: 400;
		line-height: 1.3em;
		text-decoration: none;
		text-transform: uppercase;
	}

		.site-title:hover {
    		background-color: #000;
			
			color: #fff;
			text-decoration: none;
    	}

	.site-header .main-nav {
		width: auto;
	}

		.site-header .nav-1 {
			display: flex;
			width: auto;
			margin: 0;
			padding: 0;

			list-style-type: none;
			
			font-size: .675rem;
		}

		.site-header .nav-1 li {
			margin: 0 0.35em;
		}

		.site-header .nav-1 a {
			padding: 0.3em 0.75em 0.2em;
			border-radius: 1em;
			background: rgba(0,0,0,0.1);
		
			color: #000;
			line-height: 1.3em;
			text-decoration: none;
		}
		
		.site-header.green .nav-1 a,
		.site-header.blue .nav-1 a {
			background-color: rgba(255,255,255,.2);
		}
			
		.site-header .nav-1 a:hover {
			background-color: #000;
			
			color: #fff;
			text-decoration: none;
		}
		
		.home .site-header .nav-1 a {
/* 			background-color: #81c92a; */
			color: #000;
		}
		.home .site-header .nav-1 a:hover {
/* 			background-color: #000; */
			color: #fff;
		}

/* !FOOTER */

.site-footer {
	position: relative;
}
	.site-footer .black {
		background-color: #111;
	}
	.site-footer p,
	.site-footer ul,
	.site-footer li {
		margin: .25em 0;
		line-height: 1.6;
	}
		.site-footer p {
			margin: .25em 0 1em;
		}
	.site-footer ul {
		margin: 0;
	}
	.site-footer b,
	.site-footer strong {
		font-weight: 700;
	}
	.site-footer a {
		display: inline-block;
		margin: 0 -0.15em 0 -0.1em;
		padding: 0 0.15em;
		border-radius: 0.2em;
	}
	
	.with-lizard {
		position: relative;
	}
	
	/*
	.with-lizard:before {
		content: '';
		display: block;
		position: absolute;
		left: -1rem;
		top: -1rem;
		
		width: 1.5rem;
		height: 1rem;
		background-image: url(../img/lizard.svg);
		background-size: contain;
		background-repeat: no-repeat;
		opacity: .3;
	}
	*/

	#footer-contact {
		margin: 1rem auto;
		
		/*
		font-size: 0.6rem;
		font-family: 'San Francisco', 'Segoe UI', Arial, sans-serif;
		*/
		
		font-size: 0.7rem;
		font-family: 'Roboto', sans-serif;
	}
	
		/*
		.home #footer-contact {
			margin-top: 0;
		}
		*/
		
		#footer-content .nav-1, 
		#footer-contact .nav-1 {
			list-style: none;
			padding-left: 0;
		}
		#footer-contact .nav-1 a {
			display: inline-block;
		}
		
		
		#footer-navigation {
			margin-top: -1px;
			background-color: #111;
			color: #999;
			color: var(--colour-bright-grey);
		}
			#footer-navigation:after {
				content: '';
				display: block;
				width: 100%;
				min-height: 1rem;
				background-image: url(/img/wood.jpg?v=5);
				background-position: center center;
				background-repeat: repeat;
				background-size: cover;
			}
			#footer-navigation .container {
				display: flex;
				justify-content: space-between;
				align-items: center;
				padding-bottom: 1rem;
				
				font-size: 0.75rem;
				font-weight: 700;
				font-family: 'Archer A', 'Archer B', serif;
			}

		#footer-contact .c3 p,
		#footer-contact .c3 ul {
			text-align: center;
		}

			#footer-contact .c-first p,
			#footer-contact .c-first ul {
    			text-align: left;
    		}

			#footer-contact .c-last p,
			#footer-contact .c-last ul {
    			text-align: right;
    		}


		.footer-navigation ul {
			display: flex;

			margin: 0;
			padding: 0;
			list-style-type: none;
		}

			.footer-navigation li + li {
    			margin-left: 1em;
    		}

			.footer-navigation .cke ul {
				display: block;
			}


		.footer-navigation a {
			
		}

			.footer-navigation .social a:hover {
				background-color: transparent;
			
				color: white;
			}

		#footer-navigation .footer-bottom {
			color: #999;
			font-size: 0.6rem !important;
			font-family: 'Roboto', sans-serif;
			font-style: italic;
			font-weight: 400;
		}
	
			#footer-navigation .footer-salutations {
				display: block;
				color: #999;
			}
	
			#footer-navigation .footer-copyright {
				color: #999;
			}


/* Error Messages */
.error-message,
#error {
	/* 	#error - error block from Stripe */
	color: #bb0033;
	color: var(--colour-dark-red);
}

/* Flash Message */
main > .message {
	margin: 1rem auto;
	max-width: 900px;
}

/* -- Error, Warning and Success messages ------------------------*/
.message {
	position: relative;
	margin: .5em 0 .5em 0;
	padding: .5rem .5rem .5rem 2.5rem;
	border-left: .5rem solid rgba(0,0,0,.1);
	
	line-height: 1.5;
}

.error.message {	/* RED */
	background-color: #fcc;
	background-color: var(--colour-bright-red);
	border-left-color: #cd2026;
	border-left-color: var(--colour-dark-red);
	color: #fff;
}
.warning.message {	/* YELLOW */
	background-color: #fe9;
	border-left-color: #bd9400;
}
.notice.message {	/* BLUE */
	background-color: #cef;
	border-left-color: #08c;
}
.success.message {	/* GREEN */
	background-color: #cfc;
	background-color: var(--colour-bright-green);
	border-left-color: #393;
	border-left-color: var(--colour-dark-green);
	color: #fff;
}
.dev-note.message { /* PURPLE */
	background-color: #f9b0e9;
	border-left-color: rebeccapurple;
}
.message .icon:first-child {
/* 	opacity: 0.75; */
	color: inherit;
	background-color: inherit;
	height: 1.5em;
	width: 1.5em;
	vertical-align: text-top;
	
	position: absolute;
	left: .4rem;
	top: .4rem;
}
.message .icon:first-child .svg-icon {
	width: 100%;
	height: 100%;
}
.error.message     .icon:first-child .svg-icon { color: #cd2026; color: var(--colour-dark-red);  }
.warning.message   .icon:first-child .svg-icon { color: #bd9400; color: var(--colour-dark-yellow); }
.notice.message    .icon:first-child .svg-icon { color: #08c;    color: var(--colour-dark-blue);  }
.success.message   .icon:first-child .svg-icon { color: #393;    color: var(--colour-dark-green); }
.dev-note.message  .icon:first-child .svg-icon { color: rebeccapurple; }



/* !FORM */

form {
	margin: 1.5rem 0 3rem;
}

	fieldset,
	div[class*="input-"] {
		margin: 0 0 1.5rem;
	}

	input[type="text"],
	input[type="email"],
	input[type="tel"],
	textarea {
		display: block;
		width: 100%;
		margin: 0.25rem auto;
		padding: 0.5rem 1rem;
		border: 1px solid #666;

		color: #2c95e0;
		color: var(--colour-bright-blue);
		font-family: monospace;
	}

		textarea {
			min-height: 9rem;
		}

	select {
		-webkit-appearance: none;
		-moz-appearance: none;
	   appearance: none;

	   padding: 0.5rem 3rem 0.5rem 1rem;
	   background: url('/img/select-arrow.png') 90% center no-repeat;
	   border: 1px solid #666;

	   font-family: monospace;
	}
	select::-ms-expand {
		display: none;
	}

	label {
		display: block;
		margin: 0;

		font-weight: 400;
		color: #111;
	}

		label i {
			margin: 0 0.25rem;

			font-weight: 300;
			font-size: 0.8rem;
		}

		button,
		.button,
		input[type="submit"] {
			margin-top: 1rem;
			padding: 0.5rem 2rem;
			border: 0;
			border-radius: 0.2rem;
			background-color: #2c95e0;
			background-color: var(--colour-bright-blue);

			color: white;
			text-transform: uppercase;
		}
		button:hover,
		.button:hover,
		input[type="submit"]:hover {
			background-color: #000;
		}

	fieldset.checkbox,
	fieldset.radio {
		display: flex;
	}

		fieldset.checkbox input[type="checkbox"],
		fieldset.radio input[type="radio"] {
			margin: 0.25rem 0.5rem 0 0;
		}

		fieldset.checkbox input[type="checkbox"] + label,
		fieldset.radio input[type="radio"] + label {
			font-weight: 300;
			font-size: 0.8rem;
		}
		
		.fm-checkbox > label {
			margin-bottom: 0.5rem;
		}
		
		.input-check-option {
			display: flex;
		}
			
			.input-check-option + .input-check-option {
				margin-top: -1rem;
			}
			
			.input-check-option input[type="checkbox"] {
				position: absolute;
				opacity: 0;
				cursor: pointer;
			}
			
			.input-check-option label {
				position: relative;
				margin-left: 2rem;
				
				font-size: 0.9rem;
			}
				
				.input-check-option label:before {
					content: "";
					
					position: absolute;
					top: 0.2rem;
					left: -1.75rem;
					display: block;
					
					width: 1rem;
					height: 1rem;
					border: 1px solid #666;
					border-radius: 4px;
				}
				
				.input-check-option input:checked ~ label:before {
					content: "X";
					
					border: 2px solid #000;
					
					color: #000;
					font-size: 0.6rem;
					font-weight: bold;
					line-height: 0.95rem;
					text-align: center;
				}

	/* credit card specific form styling */

	#cc_form .input-select {
		display: inline-block;
		margin-right: 0.5rem;
	}
	
/* !PAGINATION */

.pagination-links {
	display: flex;
	justify-content: center;

	margin: 2rem 0 4rem;
	padding: 0;

	list-style-type: none;
}

	.pagination-links li {
		margin: 0 0.1em;
	}

		.pagination-links li.disabled,
		.pagination-links li.first,
		.pagination-links li.last {
			display: none;
		}
		
		.pagination-links a {
			display: inline-block;
			padding: 0 .5em;
		}
			
		.pagination-links li.active a {
			color: #ff3a8d;
			color: var(--colour-bright-red);
			text-decoration: none;
		}

			.pagination-links li.active a:hover {
				background: transparent;

				cursor: default;
			}
			
/* !SLICK SLIDER */

.slider {
	position: relative;

	margin-top: 0;
}

	.slick-slider {
		position: relative;
		display: block;
		-moz-box-sizing: border-box;
			 box-sizing: border-box;

		-webkit-user-select: none;
		   -moz-user-select: none;
			-ms-user-select: none;
				user-select: none;

		-webkit-touch-callout: none;
		-khtml-user-select: none;
		-ms-touch-action: pan-y;
			touch-action: pan-y;
		-webkit-tap-highlight-color: transparent;
	}
	.slick-list {
		position: relative;
		display: block;
		overflow: hidden;
		margin: 0;
		padding: 0;
	}
	.slick-list:focus {
		outline: none;
	}
	.slick-list.dragging {
		cursor: pointer;
		cursor: hand;
	}
	.slick-slider .slick-track,
	.slick-slider .slick-list {
		-webkit-transform: translate3d(0, 0, 0);
		   -moz-transform: translate3d(0, 0, 0);
			-ms-transform: translate3d(0, 0, 0);
			 -o-transform: translate3d(0, 0, 0);
				transform: translate3d(0, 0, 0);
	}
	.slick-track {
		position: relative;
		top: 0;
		left: 0;
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
	.slick-track:before,
	.slick-track:after {
		display: table;
		content: '';
	}
	.slick-track:after {
		clear: both;
	}
	.slick-loading .slick-track {
		visibility: hidden;
	}
	.slick-slide {
		display: none;
		float: left;

		height: 100%;
		min-height: 1px;
	}
	[dir="rtl"] .slick-slide {
		float: right;
	}
	.slick-slide img {
		display: block;
	}
	.slick-slide.slick-loading img {
		display: none;
	}
	.slick-slide.dragging img {
		pointer-events: none;
	}
	.slick-initialized .slick-slide {
		display: block;
	}
	.slick-loading .slick-slide {
		visibility: hidden;
	}
	.slick-vertical .slick-slide {
		display: block;
		height: auto;
		border: 1px solid transparent;
	}
	.slick-arrow.slick-hidden {
		display: none;
	}

	/* Slick Slider additional project specific styles */
	.slick-arrow {
		position: absolute;
		top: 40%;
		width: 100px;
		height: 100px;
		margin: 0;
		padding: 10px;
		text-indent: -20em;
		overflow: hidden;
		border: none;
		border-radius: 100%;
		color: #eee;
		background-color: rgba(255,255,255,0);
		background-position: center center;
		background-repeat: no-repeat;
		background-size: 35%;
		transition: all .2s;
		opacity: .5;
		cursor: pointer;
		z-index: 100;
	}
	.slick-arrow:hover {
		background-color: rgba(255,255,255,.2);
	}
	.slick-prev { left: 10px;  background-position: 45% center; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 100"><polygon fill="%23d6d2ce" points="50,14.4 14.4,50 50,85.6 50,100 0,50 0,50 50,0"/></svg>'); }
	.slick-next { right: 10px; background-position: 55% center; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 100"><polygon fill="%23d6d2ce" points="0,14.4 35.6,50 0,85.6 0,100 50,50 50,50 0,0"/></svg>'); }

	/* Banner dots */
	.slick-dots {
		list-style: none;
		position: absolute;
		bottom: 0;
		padding: 0;
		margin: 0 auto;
		text-align: center;
		width: 100%;
		left: 0; right: 0;
		line-height: 1;
	}
		.slick-dots > li {
			display: inline-block;
			margin: 0 .25em;
			text-align: center;
		}
		.slick-dots > li > button {
			display: block;
			border: .5px solid rgba(100,100,100,.90);
			border-radius: 100%;
			background: none;
			text-indent: -10em;
			overflow: hidden;
			margin: 0;
			padding: 0;
			width: 5px;
			height: 5px;
			cursor: pointer;
		}
		.slick-dots > li:hover > button,
		.slick-dots > li.slick-active > button {
			background-color: rgba(0, 0, 0, .5);
		}