body {
	margin: 0;
	font-family: -apple-system, Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5em;
	background: #514D44;
	color: #514D44;
	text-rendering: optimizeLegibility;}
	
.top_margin {
	margin-top: 30px !important;}
	
.bottom_margin {
	margin-bottom: 30px !important;}

.no_margin {
	margin: 0 !important;}
	
.no_top_margin {
	margin-top: 0 !important;}
	
.short_top_margin {
	margin-top: 15px !important;}

.no_bottom_padding {
	padding-bottom: 0 !important;}
	
.short_bottom_padding {
	padding-bottom: 15px !important;}

.right_margin {
	margin-right: 10px !important;}

.inline {
	display: inline;}
	
.no_wrap {
	white-space: nowrap !important;}
	
.print_only {
	display: none;}
	
.mobile_only, .full_mobile_only {
	display: none;}

.clear {
	clear:both;}
	
.align_left {
	text-align: left;}

.align_center {
	text-align: center;}
	
.align_right {
	text-align: right;}
	
.flex_align_center_children {
	display: flex;
	justify-content: center;}
	
.strikeout {
	text-decoration: line-through;}

p:not(:last-child) {
	margin: 0 0 1.5em 0;}
	
p:last-child {
	margin: 0;}

a {
	color: #514D44;}

a:hover {
	text-decoration: none;}

h1 {
	font-weight: normal;
	font-size: 2em;
	line-height: 1.5em;
	margin: 0;}

h2 {
	font-family: -apple-system, Helvetica, Arial, sans-serif;
	font-weight: normal;
	font-size: 1.83em;
	line-height: normal;
	margin: 0;}

h3, #message {
	font-size: 1.41em;
	font-family: -apple-system, Helvetica, Arial, sans-serif;
	font-weight: normal;
	line-height: 1.4em;
	padding: 0;
	margin: 0;}

h4 {
	font-size: 1.2em;
	font-weight: normal;
	padding: 0;
	margin: 0;}
	
h5 {
	font-size: 1em;
	font-weight: bold;
	padding: 0;
	margin: 0 0 1px 0;}

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

ul li {
	display: block;
	line-height: normal;
	margin-bottom: 3px;}

ul.horizontal_flex, ul.breadcrumb_flex {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;}

ul.horizontal_flex li {
	white-space: nowrap;
	margin-left: 15px;
	margin-right: 15px;}
	
ul.horizontal_flex_narrow li {
	margin-left: 4px !important;
	margin-right: 4px !important;}

ul.breadcrumb_flex {
	display: flex;
	justify-content: center;
	align-items: center;}

ul.breadcrumb_flex li {
	text-align: center;}
	
ul.horizontal li, ul.breadcrumb li {
	float:left;}

ul.horizontal li {
	margin-right: 20px;}
	
ul.horizontal_right li {
	margin-left: 20px;
	margin-right: 0 !important;}

/* Layout and columns */

	.page_wide {
		clear: both;
		width: 100%;
		background: #F6F7F0;}
	
	.page {
		width: 900px;
		padding: 0 30px 30px 30px;
		margin: 0 auto;}
		
	.flex_columns {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		flex-wrap: wrap;
		justify-content: space-evenly;}

	.column {
		width: 156px;
		float: left;
		margin: 30px 30px 0 0;}
		
	.last_column {
		margin-right: 0 !important;}
		
	.column_2 {
		width: 342px;
		float: left;
		margin: 30px 30px 0 0;}
	
	.column_3 {
		width: 528px;
		float: left;
		margin: 30px 30px 0 0;}
	
	.column_4 {
		width: 714px;
		float: left;
		margin: 30px 30px 0 0;}
	
	.column_5 {
		width: 900px;
		float: left;
		margin: 30px 30px 0 0;}
		
	ul.gallery_grid_104 {
		display: grid;
		grid-template-columns: repeat(auto-fill, 104px);
		grid-gap: 15px;
		justify-content: space-between;}
		
	ul.gallery_grid li {
		margin-bottom: 0;}

/* Header */
			
	#header li a.active, #nav_links li a.active {
		color: #514D44;
		background: #FFF;
		border-radius: 4px;}
		
	#nav_links li a {
		padding: 4px;}
		
	a.active {
		text-decoration: none;
		background-color: #FFF;
		padding: 2px;
		border-radius: 3px;}
		
	#header_right {
		position: absolute;
		right: env(safe-area-inset-right);
		margin-right: 15px;}
		
	#header_left {
		position: absolute;
		left: env(safe-area-inset-left);
		margin-left: 15px;}
	
	#cart_link {
		text-decoration: none;
		display: block;
		font-size: 1.41em;}
	
	#cart_num_items {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 1.5em;
		border-radius: 50%;
		vertical-align: middle;
		background: #FFF;
		color: #514D44;
		margin-left: 5px !important;
		margin-top: -6px;}
	
	#cart_num_items:before {
		content:'';
		float: left;
		width: auto;
		padding-bottom: 100%;}
		
	.canopy_green a.button, .canopy_green span.button, .canopy_green a.button:hover {
		background: #FFF;
		color: #647333;}
	
	.canopy_green a.button_outline, .canopy_green span.button_outline {
		border: 1px solid #FFF !important;
		color: #FFF !important;}
	
	a.light {
		background: #88867D !important;
		color: #FFF !important;}
	
	#message_wide {
		display: none;
		width: 100%;
		background: #514D44;
		padding:15px 0;
		z-index: 10;}
	
	#message {
		width: 900px;
		margin: 0 auto;
		padding-left: 30px;
		padding-right: 30px;
		color: #FFF;
		text-align: center;}
	
	#message a {
		color: #FFF;}
	
	#message_wide.error {
		background: #f99;}
	
	#message_wide.error #message {
		color: #333;}
	
	#message_wide.error #message a {
		color: #333;}
		
	#message span.sub_text {
		line-height: normal;
		font-size: 0.71em;}

/* Form elements */

	div.label_group {
		float:left;
		margin-bottom: 10px;
		min-height: 28px;}
	
	label, span.label {
		display:block;
		float:left;
		width:156px;
		min-height:20px;
		margin: 0 30px 11px 0;}
		
	label.narrow {
		width: 75px;
		margin: 0 25px 11px 0;}
	
	label.inline {
		display:inline;
		float:none;
		width:auto;
		margin-right:15px;}
		
	label.error {
		background: #f99;
		color:#333;
		float: none;
		margin: 5px 0 0 0;
		padding: 3px;
		min-height: 0;
		display: none;
		width: intrinsic;
		border-radius: 3px;
		max-width: 336px;}
	
	label.error a {
		color: #333;}
	
	div.input_explanation {
		max-width: 302px;}
	
	span.required {
		background-color:#f99;
		color:#900;
		font-size:0.5em;
		font-weight:bold;
		padding: 0.3em;
		border-radius: 2px;
		position: relative;
		top: -0.3em;}
	
	input[type=text], input[type=search], input[type=password], input[type=file], textarea, .stripe_element, .stripe_element_narrow {
		font-size: 14px;
		border: 1px #d9d9d9 solid;
		border-radius: 5px;
		padding: 5px 10px 5px 10px;
		width: 280px;
		margin: 0;}
		
	.stripe_element_narrow {
		width: 140px !important;}
		
	.stripe_element, .stripe_element_narrow {
		background-color: #FFFFFF;}
		
	input.error, .stripe_element_error {
		background-color: #F99;}
	
	input.inline, select.inline {
		margin-bottom: 0;}
	
	input[type=text].narrow, input[type=text].number, input[type=number], .stripe_element_narrow {
		width: 140px;}
	
	input[type=number].narrow, input[type=text].extra_narrow {
		width: 70px;}
	
	h2 input[type=text] {
		font-size: 1em;}
	
	select {
		color: #000;
		background-image: url("data:image/svg+xml,<svg width='24' height='24' xmlns='http://www.w3.org/2000/svg'><path d='m0,6l12,12l12,-12l-24,0z'/><path fill='none' d='m0,0l24,0l0,24l-24,0l0,-24z'/></svg>");
		background-repeat: no-repeat;
		background-size: 9px;
		background-position-x: calc(100% - 9px);
		background-position-y: center;
		-moz-appearance: none; 
		-webkit-appearance: none;
		appearance: none;
		background-color: #FFF;
		display: inline-block;
		border: 1px #d9d9d9 solid;
		border-radius: 5px;
		padding: 6px 30px 6px 10px;
		font-size: 13px;
		margin: 0;
		max-width: 335px;}
	
	select.fixed_width {
		width: 335px;}
	
	select.small {
		font-size: 0.75em;}
			
	input[type=radio], input[type=checkbox] {
		margin: 8px 10px 0 0;}
	
	textarea {
		width: 300px;
		margin: 0;}
	
	input[type=submit], a.button, span.button, button, a.button_outline {
		-webkit-appearance: none;
		text-decoration: underline;
		color: #FFF;
		background: #647333;
		display: inline-block;
		padding: 7px 10px;
		border: none;
		border-radius: 4px;
		cursor:pointer;
		font-size: 1em;
		line-height: 1.5em;}
	
	input[type=submit]:hover, a.button:hover, button:hover, span.button:hover {
		text-decoration: none;
		background: #647333;}
	
	input[type=submit], button {
		margin-top: 11px;}
		
	input[type=submit].submit_wait, input[type=submit].submit_wait:hover, button.submit_wait, button.submit_wait:hover {
		text-decoration: none;
		background:#88867D;
		color:#DBDAD8;
		cursor: wait;}
	
	a.button_outline {
		background: inherit;
		border: 1px solid #647333;
		color: #647333;}
		
	.canopy_green a.button_outline {
		border: 1px solid #FFF;
		color: #FFF;}
		
	a.button_small {
		font-size: 0.85em;}

/* Tables */

	table {
		margin: 0;
		border-spacing: 0;
		border: 0;}
	
	td, th {
		padding: 6px 8px 5px 0;
		vertical-align: top;
		text-align: left;}
		
	table.no_vert_space td {
		padding: 0 8px 0 0 !important;}

/* Panes */

	li.thumbnail_pane {
		line-height: 0px;}
	
	li.thumbnail_pane:hover a {
		text-decoration: none;}
	
	a.thumbnail_pane_150 {
		text-align: center;
		padding: 15px;
		display: inline-block;
		width: 120px;
		height: 120px;
		background: #FFF;
		border-top-left-radius: 5px;
		border-top-right-radius: 5px;
		margin-top: 30px;}
		
	a.thumbnail_pane_150_text {
		line-height: normal;
		white-space: normal;
		font-size: 1.2em;
		color: #FFF;
		display: block;
		background: #647333;
		border-bottom-left-radius: 5px;
		border-bottom-right-radius: 5px;
		text-align: center;
		padding: 10px;
		width: 130px;}
	
	li.column_2_pane {
		line-height: 0px;}
		
	div.column_2_pane, a.column_2_pane {
		text-align: center;
		padding: 15px;
		display: inline-block;
		width: 312px;
		height: 171px;
		background: #FFF;
		border-top-left-radius: 5px;
		border-top-right-radius: 5px;
		margin-top: 30px;}
		
	div.column_2_pane_text {
		line-height: 1.5em;
		white-space: normal;
		font-size: 1.2em;
		color: #FFF;
		display: block;
		background: #5E6C34;
		border-bottom-left-radius: 5px;
		border-bottom-right-radius: 5px;
		padding: 15px;
		width: 312px;}
		
	div.column_2_pane_text a {
		color:#FFF;}

/* Panes */
	
	.pane {
		border-radius: 5px;
		border: 1px solid #d9d9d9;
		padding: 10px;}
		
	.pane_white {
		border-radius: 5px;
		background-color: #FFF;
		padding: 10px;}
		
	a.pane_button {
		border-radius: 5px;
		border: 1px solid #d9d9d9;
		padding: 10px;
		text-decoration: underline;
		display: block;
		cursor:pointer;
		font-size: 1.2em;}
		
	a.pane_button:hover {
		text-decoration: none;
		background: #FFFFFF;}
		
	.nav_pane {
		display: block;
		border-radius: 5px;
		background: #FFF;
		border: none;
		font-size: 1.2em;
		padding: 10px;}
		
	.nav_pane li {
		margin-bottom: 9px;}

/* Icons */
	
	.icon_left {
		padding-right: 5px !important;}
	
	.icon_right {
		padding-left: 5px !important;}
		
	.icon_only span.text {
		display:none;}		
	
	.icon_hide {
		display: none;}

/* Tags */

	.tag {
		background-color:#74706B;
		color:#f6f7f0;
		padding: 3px;
		border-radius: 2px; 
		margin-right:4px;
		white-space: nowrap;}

	.highlight {
		background-color:#FF9;
		padding: 3px;}

/* Colour schemes */

	.canopy_green {
		background: #647333;
		color: #FFFFFF;}
		
	.canopy_light_brown {
			background: #D8D6C8;}
		
	.canopy_brown {
		background: #514D44;
		color: #88867D;}
	
	.canopy_green .page, .canopy_green a {
		color: #FFFFFF;}
		
	.canopy_brown .page, .canopy_brown a {
		color: #88867D;}

div.video_container {
	position:relative;
	padding-bottom:56.25%;
	height:0;
	overflow:hidden;}
	
.video_container iframe, .video_container object, .video_container embed {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;}

/* Footer */
	
/* Mobile */
	
	@media screen and (max-width: 960px) {
	/* Hybrid mobile, some compression of info but retain desktop layout */
	
		body {
			font-size: 16px;}
		
		.mobile_only {
			display: inherit;}
		
		.no_mobile {
			display: none !important;}
			
		.mobile_align_center {
			text-align: center;}
			
		img {
			max-width:100%;
			height:auto;}
			
		#message {
			width: calc(100% - 30px);
			margin: 0;
			padding: 0 15px 15px 15px;}
		
		#message {
			padding-bottom: 0 !important;}
			
		.page {
			width: calc(100% - 30px);
			margin: 0;
			padding: 0 15px 15px 15px;}
		
		ul.horizontal_flex, ul.breadcrumb_flex, {
			flex-wrap: wrap;}
		
		select {
			font-size: 14px;
			max-width: 250px;}
			
		input[type=submit] {
			font-size: 16px;}
	
		input[type=text], input[type=password], input[type=file] {
			width:250px;
			float: none;
			font-size: 14px;}
			
		textarea {
			width:250px;
			float: none;
			font-size: 14px;}
			
		label {
			width:100%;
			margin: 0;}
				
		.column {
			width: 100%;
			display: inline-block;
			margin: 30px 0 0 0;}
		
		.column_2 {
			width: 100%;
			display: inline-block;
			margin: 30px 0 0 0;}
	
		.column_3 {
			width: 100%;
			display: inline-block;
			margin: 30px 0 0 0;}
		
		.column_4 {
			width: 100%;
			display: inline-block;
			margin: 30px 0 0 0;}
		
		.column_5 {
			width: 100%;
			display: inline-block;
			margin: 30px 0 0 0;}
		
		.mobile_column {
			width: 156px;
			float: left;
			margin: 30px 5px 0 4px;}
			
		.flex_columns .last_column {
			margin: 30px 5px 0 4px !important;}
			
		.mobile_column_150 {
			float: left;
			width: 150px;
			margin: 15px 15px 0 0;
			padding: 0;}
			
		.mobile_column_150_balance {
			float: left;
			width: calc(100% - 165px - 15px);
			margin: 15px 15px 0 0;
			padding: 0;}
		
		.mobile_no_top_margin {
			margin-top: 0 !important;}
		
		.mobile_short_top_margin {
			margin-top: 15px;}
			
		ul.mobile_column_2 {
			columns: 2;
			display: block !important;}
			
		ul.mobile_column_2  li {
			margin-left: 0 !important;
			margin-right: 0 !important;
			white-space: normal;}
			
		ul.mobile_column_2 li:not(:last-child) {
			margin-bottom: 10px;}
			
		ul.mobile_column_2  li h3 {
			line-height: normal !important;
			}
		}
		
	@media screen and (max-width: 774px) {
		/* Full mobile, at this point it should work more like a phone */
		
		.no_full_mobile {
			display: none;}
		
		.full_mobile_only {
			display: inherit;}	
			
		.full_mobile_no_float {
			float: none !important;}
			
		#cart_link {
			font-size: 0.85em;}
			
		}
	
/* Print */
	
	@media print {
		.print_only {
			display: inherit;}
			
		.no_print {
			display: none !important;}
		}