html {	font-family: -apple-system,BlinkMacSystemFont,Roboto,Segoe UI,Helvetica,Arial,sans-serif;
	text-underline-offset: .1578em;
	height: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale; }
body {	margin: 0; }

/* nav */
nav > * {	display: inline-block;
	margin-bottom: 0;
	margin-right: 30px; }
body > nav {	margin: auto;
	padding: 20px 20px;
	max-width: 960px;
	text-align: center; }
body > nav a {	margin: 10px 15px;
	display: inline-block;
	vertical-align: middle;
	text-decoration: none; }
body > nav div {	margin-right: 0;}
@media (min-width: 40.0625em) {
	nav {	font-size: 1.1875rem;
		line-height: 1.3157894737; } }
@media (min-width: 50em) {
	body > nav > a {	margin-left: 0; }
	body > nav div :last-child {	margin-right: 0;}
	body > nav {	text-align-last: justify; } }

/* main */
main {	font-size: 1.1875rem;
	position: relative; }

/* footer */
footer {	margin: 0 auto;
	font-size: 1.1875rem;
	line-height: 1.3157894737;
	position: relative;
	padding: 25px 20px 15px;
	}
@media (min-width: 1000px) {
	footer {padding: 0 calc(50% - 480px); } }
@media (min-width: 40.0625em) {
	footer {	padding-top: 40px;
		padding-bottom: 25px; } }
footer > * {	vertical-align: top; }
footer article {	box-sizing: border-box;
	display: inline-block;
	text-align: left;
	width: 60.66%; }
footer img {	box-sizing: border-box;
	width: 33.33%; }
footer ul {	padding: 0; }

/* article */
main > article {	padding: 20px 20px;
	max-width: calc(100% - 40px);
	margin: 0 auto; }
@media (min-width: 1000px) {
	main > article {	
		padding: 20px calc(50% - 480px);  } }
@media (min-width: 40.0625em) {
	main > article {	max-width: 960px;
		padding-bottom: 40px;
		padding-top: 40px; } }
article.fullwidth {	padding-left: 0;
	padding-right: 0;
	max-width: 100%; }
@media (min-width: 1230px) {
	main > article.gallery {	padding: 20px calc(50% - 615px);
		max-width: 1230px;
		padding-bottom: 40px;
		padding-top: 40px; } }
article:target h2 {	text-decoration: underline; }

/* headings */
h1, h2 large {	font-weight: 700;
	font-size: 2rem;
	line-height: 1.09375;
	margin-top: 0;
	margin-bottom: 20px;
	text-align: center; }
h2 {	font-size: 30px;
	font-weight: 700;
	line-height: 1.0416666667;
	margin-top: 0;
	margin-bottom: 20px; }
h3, h1 small {	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.1111111111;
	display: inline-block;
	margin-top: 0;
	margin-bottom: 15px; }
h1 small {	font-weight: 500;
	text-decoration: underline; }
@media (min-width: 40.0625em) {
	h1, h2 large {	font-size: 3rem;
		line-height: 1.1111111111;
		margin-bottom: 50px; }
	h2 {	font-size: 2.25rem;
		line-height: 1.1111111111;
		margin-bottom: 30px; }
	h3, h1 small {	font-size: 1.5rem;
		line-height: 1.25;
		margin-bottom: 20px; } }

/* a */
a {	color: currentColor;
	text-decoration: underline;
	text-decoration-thickness: max(1px, .0625rem);
	text-underline-offset: .1578em; }
a:hover {	text-decoration: underline;
	text-decoration-thickness: max(3px, .1875rem, .12em);
	text-decoration-skip-ink: none; }
a:focus > span {	box-shadow: none; }
a:focus,
a:focus > h2 {	outline: 3px solid rgba(0,0,0,0);
	box-shadow: 0 -2px #fd0,0 4px #0b0c0c;
	text-decoration: none;
	box-decoration-break: clone; }
a:has(svg) {	position: relative;
	box-shadow: none; }
a svg {	vertical-align: middle;
	align-self: center;
	margin-left: 10px; }

/* fieldsets */
fieldset {	border: 0; padding: 0; margin-bottom: 20px }

/* buttons */
[role="button"],
button {	box-sizing: border-box;
	font-size: 1rem;
	margin: 0 0 22px;
	padding: 8px 10px 7px;
	border: 2px solid transparent;
	position: relative;
	box-shadow: 0 2px 0 #002d18;
	text-align: center;
	display: inline-flex;
	cursor: pointer;
	user-select: none; }
/* secondary */
[role="button"]:link {	text-decoration: none; }
[role="button"]:active,
button:active {	top: 2px; }
[role="button"]:focus,
button:focus {	outline: 3px solid transparent;
	z-index: 2;
	box-shadow: inset 0 0 0 1px #fd0; }
[role="button"]:focus:not(:hover),
button:focus:not(:hover) {	box-shadow: 0 2px 0 #0b0c0c; }
[role="button"].disabled,
button[disabled]:hover {	cursor: not-allowed; }
[role="button"].disabled:active,
button[disabled]:active {	top: 0;
	box-shadow: 0 2px 0 #002d18; }
input[disabled] {	opacity: 0.5; }

/* forms */
form {	text-align: center; }

/* inputs */
select,
input {	font-weight: 400;
	font-size: 1rem;
	line-height: 1.25;
	color: #0b0c0c; }
@media (min-width: 40.0625em) {
	select, input {	font-size: 1.1875rem;
		line-height: 1.25; } }
select,
input[type="text"],
input[type="tel"],
input[type="search"],
input[type="email"] {	border: 2px solid #0b0c0c; }
select,
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"] {	box-sizing: border-box;
	height: 2.5rem;
	margin-top: 0;
	padding: 5px; }
input {	border: 2px solid transparent;
	appearance: none; }
select:focus,
input:focus {	border: 2px solid #0b0c0c;
	outline: 3px solid #fd0;
	outline-offset: 0;
	box-shadow: inset 0 0 0 2px #0b0c0c;
	position: relative;
	z-index: 2; }
select[disabled],
input[disabled] {	opacity: 0.5;
	color: inherit;
	background-color: transparent;
	cursor: not-allowed; }
input[type="number"] {	text-align: center;
	border: 2px solid #929191;
	appearance: textfield; }
input[type="radio"] {	box-sizing: content-box;
	position: relative;
	font-size: 1rem;
	text-align: center;
	align-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid #0b0c0c;
	margin: 0;
	margin-right: 15px;
	vertical-align: middle;
	cursor: pointer; }
input[type="radio"]:focus {	outline: 3px solid transparent;
	outline-offset: 1px;
	border-width: 4px;
	width: 36px;
	height: 36px;
	box-shadow: 0 0 0 4px #fd0; }
input[type="radio"]:checked::after {	content: "";
	box-sizing: border-box;
	vertical-align: middle;
	position: absolute;
	top: 10px;
	right: 10px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #000; }
input[type="radio"]:checked:focus::after {	top: 8px;
	right: 8px; }
input[type="search"] {	height: 50px;
	width: calc(100% - 55px);
	position: relative;
	vertical-align: middle;
	margin: 0;
	padding: .3157894737em; }
input[type="checkbox"] {	z-index: 1;
	width: 44px;
	height: 44px;
	margin: 0;
	opacity: 0;
	cursor: pointer; }
div:has(input[type="checkbox"]) {	cursor: pointer;
	display: flex;
	flex-wrap: wrap;
	position: relative;
	margin-bottom: 10px; }
input[type="checkbox"] + label::after, input[type="checkbox"] + label::before {
	content: "";
	box-sizing: border-box;
	position: absolute;
	background: transparent; }
input[type="checkbox"] + label::before {	top: 2px;
	left: 2px;
	width: 40px;
	height: 40px;
	border: 2px solid; }
input[type="checkbox"] + label {	align-self: center;
	max-width: calc(100% - 74px);
	margin-bottom: 0;
	padding: 7px 15px;
	cursor: pointer;
	touch-action: manipulation; }
input[type="checkbox"] + label::after {	top: 13px;
	left: 10px;
	width: 23px;
	height: 12px;
	transform: rotate(-45deg);
	border: solid;
	border-width: 0 0 5px 5px;
	border-top-color: transparent;
	opacity: 0; }
input[type="checkbox"]:checked + label::after {	opacity: 1; }
input[type="checkbox"]:focus + label::before {	border-width: 4px;
	outline: 3px solid transparent;
	outline-offset: 1px;
	box-shadow: 0 0 0 3px #fd0; }
@media (min-width: 40.0625em) {
	textarea {	font-size: 1.1875rem;
		line-height: 1.25;
		margin-bottom: 30px; } }
textarea {	font-weight: 400;
	font-size: 1rem;
	line-height: 1.25;
	box-sizing: border-box;
	display: block;
	width: 100%;
	min-height: 40px;
	margin-bottom: 20px;
	padding: 5px;
	resize: vertical;
	border: 2px solid #0b0c0c;
	border-radius: 0; }
textarea:focus {	outline: 3px solid #fd0;
	outline-offset: 0;
	box-shadow: inset 0 0 0 2px; }

/* labels */
label {	font-size: 1rem;
	line-height: 1.25;
	color: inherit;
	display: inline-block;
	margin-bottom: 0.75rem;
	text-align: left;
	width: 100%; }
@media(min-width: 40.0625em) {
	label {	font-size: 0.93rem;
		line-height: 1.5; } }
select,
label input {	width: 100%; }
label:has(select[name="state"]),
label:has(input[name="zip"]) {	width: 49%; }
label:has(select[name="state"]) {	float: left; }
label:has(input[name="zip"]) {	float: right; }

#start, .submit {	margin-bottom: 10px;
	font-weight: 700;
	font-size: 1.5rem; }
.submit {	text-align: center;
	margin-top: 20px;
	width: 100%;
	font-weight: 500;
	display: block; }
@media (min-width: 40.0625em) {
	.submit {	margin-top: 30px; } }

/* lists */
figure ul, article > ul {	list-style-type: none; }
ol {	list-style: none;
	counter-reset: item;
	display: table; }
ol {	margin-left:0;
	padding-left:0; }
ol > li {	display: table-row; }
ol > li > *{	margin-top: 0; }
ol li::before {	color: #005a30;
	padding-right: 1em;
	display: table-cell;
	font-size: 1.5rem;
	counter-increment: item;
	content: counter(item);
	box-sizing: content-box;
	font-weight: 700;
	text-align:center; }
ul {	list-style-type: disc;
	padding-left: 20px; }

figure.hero ul, article#about ul {	padding-left: 19px;
	line-height: 2; }

figure.hero ul li, article#about ul li {	
	list-style-image: url('data:image/svg+xml,<svg width="14" height="12" viewBox="0 0 14 12" xmlns="http://www.w3.org/2000/svg" fill="%2300703c"><path fill-rule="evenodd" d="M13.685.153a.752.752 0 0 1 .143 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143Z" /></svg>');
	padding-left: 0.5rem; }

figure.hero ul li::marker, article#about ul li {	font-size: 1em; }

/* figures */
figure {	margin: 0 auto;
	margin-bottom: 20px;
	width: 100%; }
figure.hero {	display: flex;
	margin-bottom: 20px; }
figure.hero img {	object-fit: cover;
	flex: 1;
	width: 1px;
	max-height: 800px;
	object-position: top; }
figure.hero figcaption {	font-size: 1.25rem;
	flex: 0 0 25rem;
	padding: 50px;
	width: 35rem; }
figure.hero * {	text-align: left; }
@media (max-width: 40.0625em) {
	figure.hero {	flex-direction: column; }
	figure.hero img {	width: 100%; }
	figure.hero figcaption {	width: 100%;
		flex: unset;
		box-sizing: border-box;
		padding: 20px; } }
@media (min-width: 30.0625em) {
	figure.hero figcaption {	margin: auto; }}

/* imgs */
@keyframes fadeIn {	0% { opacity: 0; } to { opacity: 1; } }
.lazyloaded {	animation: fadeIn ease 0.5s; }
img {	max-width: 100%;
	height: auto; }
.cards img {	object-fit: cover;
	max-height: 200px;
	width: 100%; }
.cards > li img:hover {	filter: brightness(0.8); }
.right, .left {	display: block;
	max-width: 100%;
	max-width: min(100%, 500px);
	border-radius: 0.5rem;
	margin: auto; }
@media (min-width: 50.0625em) {
	.right {	margin-left: 30px; float: right; }
	.left {	margin-right: 30px; float: left; } }

/* font related */
em {	font-style: normal;
	font-weight: 600; }
address {	font-style: normal }

/* errors and notifications */
[role="alert"] b {	color: #2c241d;
	margin-bottom: 0; }
[role="alert"] {	font-weight: 400;
	font-size: 1rem;
	line-height: 1.25;
	padding: 15px;
	margin-bottom: 30px;
	border: 5px solid; }
[role="alert"][id$="error"] {	border: 5px solid #d4351c; }
@media(min-width: 40.0625em) {
	[role="alert"] {	padding: 20px;
		margin-bottom: 50px;
		font-size: 1.1875rem;
		line-height: 1.3157894737; } }
label:has(.error),
label:has([id$="error"]) {	padding-left: 15px;
	border-left: 5px solid #d4351c; }
.error,
[id$="error"] {	color: #d4351c;
	font-size: 1rem;
	line-height: 1.25;
	margin-top: 0;
	margin-bottom: 15px; }
@media(min-width: 40.0625em) {
	.error,
	[id$="error"] {	font-size: 1.1875rem;
		line-height: 1.3157894737; } }
.error ~ input, [id$="error"] ~ input {	border-color: #d4351c; }
.error ~ input:focus, [id$="error"] ~ input:focus {	border-color: #0b0c0c; }
.error a, [id$="error"] a {	color: #d4351c; }

/* misc */
[aria-hidden="true"] {	user-select: none; }
meta, link, [hidden] {	display: none; }
br {	clear: both; }

/* ID specific */
/* products page */
.cards {	text-align: center;
	padding-left: 0; }
.cards > li {	
	background-clip: content-box;
	box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
	overflow: clip;
	box-sizing: content-box;
	display: inline-block;
	width: 300px;
	max-width: 90%;
	vertical-align: top;
	margin: 10px;
	border-radius: 0.5rem }
.cards > li > img,
.cards > li > div {	margin: 0; height: 200px; }
.cards > li > * {	margin: 0.5rem;
	display: block; }

.card {	position: relative }
.card a::after {	content: '';
	position: absolute;
	border-radius: 0.5rem;
	inset: 0 0 0 0; }


/* backlinks */
#backlink::before {	content: "";
	visibility: visible;
	position: absolute;
	top: 0;
	bottom: 0;
	left: -.206875em;
	width: .4375em;
	height: .4375em;
	margin: auto 0;
	transform: rotate(45deg);
	border: solid;
	border-width: 1px 1px 0 0;
	border-color: currentColor;
	left: .206875em;
	transform: rotate(-135deg); }
#backlink {	font-size: 0.875rem;
	padding-left: .875em;
	position: relative;
	font-weight: 400;
	line-height: 1.1428571429;
	margin-top: 15px;
	margin-bottom: 10px; }

/* loading spinner */
stripe-form > * {	visibility: visible;
	transition: height .2s ease-out, opacity .3s ease-in-out; }
stripe-form[data-loading=true] > * {	visibility: hidden;
	height: 0;
	opacity: 0; }
stripe-form[data-loading=true]::before {	content: "";
	display: block;
	margin: 60px auto;
	border: 12px solid #dee0e2;
	border-radius: 50%;
	border-top-color: #00703c;
	width: 80px;
	height: 80px;
	animation: spin 2s linear infinite; }
stripe-form span {	font-size: 12px;
	display: inline-block;
	margin-left: 20px; }
@keyframes spin {	to { transform: rotate(1turn); } }

/* printing */
@media print {
	h2 {	font-size: 24pt;
		line-height: 1.05; }
	h3 {	font-size: 18pt;
		line-height: 1.15; }
	* {	box-shadow: none !important;
		color: #000; }
	header, body > nav {	display: none !important; } }

/* colors */
html, header {	color: #0b0c0c;
	background-color: #f3f2f1; }
main > :nth-child(2n+1) {	background-color: #e9e8e7; }
footer {	background-color: #eae4da; }
[role="alert"],
header {	border-color: #406781; }
[role="button"],
button {	background-color: #00703c; } 
.cards > li,
[role="alert"],
select,
input,
input[type="checkbox"] + label::before {	background-color: #fff; }
[role="button"],
[role="button"]:active,
[role="button"]:hover,
button,
button:active,
button:hover {	color: #fff; }
[role="button"].disabled,
button[disabled]:hover,
button[disabled] {	background-color: #71ab90; }
[role="button"]:hover,
button:hover {	background-color: #005a30; }
[role="button"]:focus:not(:hover),
button:focus:not(:hover) {	background-color: #fd0;
	color: black;}
[role="button"]:focus,
button:focus {	border-color: #fd0; }
mark {	background-color: #fd0; }
a:focus {	color: #0b0c0c;
	background-color: #fd0; }
