@keyframes alert-close {
	from { visibility: visible; opacity: 1;}
	to { visibility: collapse; opacity: 0; }
}
@keyframes wipe {
	from { height: 0; }
}
* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
.alert_container {
	position: fixed;
	top: 60px;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 2;
}
.nohead {
	top: 0;
}
.alert {
	visibility: visible;
	opacity: 1;
	transition: 0.8s;
	box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
	padding: 20px;
	color: white;
	margin-bottom: 15px;
	width: 90%;
	margin: 1em 0;
	animation: alert-close 0.8s ease-out 5s 1 forwards;
	z-index: 3;
}
.alert > i {
	margin-right: 1em;
}
.closebtn {
	margin-left: 15px;
	color: white;
	font-weight: bold;
	float: right;
	font-size: 22px;
	line-height: 20px;
	cursor: pointer;
	transition: 0.3s;
}
input {
	border-radius: 0;
}
textarea {
	width: 100%;
	height: 240px;
	resize: none;
}
.closebtn:hover {
	color: black;
}
.error {
	background-color: #f56257;
}
.error-fg {
	color: #f56257;
}
.success {
	background-color: #2eb885;
}
.success-fg {
	color: #2eb885;
}
.info {
	background-color: #46a7f5;
}
.info-fg {
	color: #46a7f5;
}
.warning {
	background-color: #ffa92a;
}
.warning-fg {
	color: #ffa92a;
}
body {
  	background-color: #123b16;
	margin: 0;
}
#hamburger {
	display: none;
	width: 50px;
	height: 50px;
}
.login {
  	width: 400px;
  	background-color: #ffffff;
  	box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.3);
  	margin: 100px auto;
}
.login h1 {
  	text-align: center;
  	color: #0e2e11;
  	font-size: 24px;
  	padding: 20px 0 20px 0;
  	border-bottom: 1px solid #dee0e4;
}
.login form {
  	display: flex;
  	flex-wrap: wrap;
  	justify-content: center;
  	padding-top: 20px;
}
.login form div, form.password div.newpassrow, form.password div div {
	display: flex;
	flex-direction: row;
}
.newpassrow > div {
	flex-grow: 1;
}
.login form label, form.password label {
  	display: flex;
  	justify-content: center;
  	align-items: center;
  	width: 50px;
  	height: 50px;
  	background-color: #456e49;
  	color: #ffffff;
}
.login form input[type="password"], .login form input[type="text"], form.password input[type="password"] {
  	height: 50px;
  	border: 1px solid #dee0e4;
  	margin-bottom: 20px;
  	padding: 0 15px;
	flex-grow: 1;
}
form.password input[type="password"] {
	margin-bottom: 0;
}
form.password input[type="submit"], form.checklist input[type="submit"], .button {
	padding: 0 20px;
	min-height: 50px;
	line-height: 50px;
	background-color: #456e49;
	color: white !important;
	border-radius: 0;
	border: 0;
	font-weight: bold;
	cursor: pointer;
	display: block;
	text-align: center;
	text-decoration: none;
}
.inactive {
	background-color: #c1c4c8;
	color: black !important;
}
.header_action {
	display: flex;
	gap: 1em;
	border-bottom: 1px solid #e0e0e3;
}
.header_action .button {
	margin: auto 0;
	height: 50px;
}
.flex-spacer {
	flex-grow: 1;
}
.actions {
	display: flex;
	gap: 1em;
	justify-content: flex-end;
}
.login form input[type="submit"], .login a {
	display: block;
  	width: 100%;
  	padding: 15px;
 	margin-top: 20px;
  	background-color: #456e49;
  	border: 0;
  	cursor: pointer;
  	font-weight: bold;
  	color: #ffffff;
  	transition: background-color 0.2s;
	text-decoration: none;
	text-align: center;
}
.login form input[type="submit"]:hover, .login a:hover {
	background-color: #2c5530;
  	transition: background-color 0.2s;
}

/* Navigation Styles */
header {
	position: sticky;
	top: 0;
	display: flex;
	background-color: #123b16;
	height: 60px;
	width: 100%;
	border: 0;
	padding: 0 1em;
	z-index: 1;
}
header > div {
	display: flex;
	margin: 0 auto;
	width: 1000px;
	height: 100%;
	align-items: center;
}
header #title {
	flex: 1;
	font-size: 24px;
	padding: 0;
	margin: 0;
	color: #eaebed;
	font-weight: normal;
	text-decoration: none;
}
nav menu {
	display: grid;
	grid-auto-flow: column;
	list-style-type: none;
	padding: 0;
	height: 100%;
	margin: 0;
	z-index: 5;
}
nav li {
	display: flex;
	flex-direction: column;
	min-width: max-content;
	position: relative;
	justify-content: center;
}
.subnav-content {
	position: absolute;
	top: 60px;
    background-color: #123b16;
    z-index: 6;
    display: none;
	min-width: max-content;
}
.subnav:hover .subnav-content {
    display: flex;
	flex-direction: column;
}
.subnavbtn, .subnav-content > a {
	display: inline-flex;
	align-items: center;
	height: 60px;
	cursor: pointer;
	padding: 0 20px;
	margin: 0;
	text-decoration: none;
	color: #c1c4c8;
	font-weight: bold;
	background-color: #123b16;
	border: 0;
}
.subnavbtn:hover, .subnav-content > a:hover {
	color: #eaebed;
}
.subnavbtn > i, .subnav-content > a > i {
	padding: 2px 8px 0 0;
}

/* General Styles */
body.loggedin {
	background-color: #f3f4f7;
}
main {
	width: 1000px;
	margin: 0 auto;
}
.register > h1 {
	position: relative;
}
.index-button {
	position: absolute;
	display: flex;
	height: 32px;
	width: 32px;
	justify-content: center;
	align-items: center;
	color: #456e49;
	text-decoration: none;
	font-size: 24px;
}
.index-button:hover {
	color: #2c5530;
}
.back-button {
	left: 1em;
	top: 1em;
}
.create-button {
	right: 1em;
	top: 1em;
}
.paginator-container {
	border: 0;
	padding: 1em 0 0;
}
.pagination {
	display: flex;
	justify-content: center;	
	background-color: #123b16;
	list-style: none;
	padding: 0;
	margin: 0;
}
.pagination li {
	min-width: 2em;
	background-color: #123b16;
}
.pagination li.disabled {
	display: none;
}
.pagination li.active {
	background-color: white;
}
.pagination li.active a {
	color: #123b16;
}
.pagination li a {
	display: block;
	color: white;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	line-height: 3em;
	font-size: 16px;
	width: 3em;
	height: 3em;
}
.pagination li a:hover {
	background-color: white;
	color: #123b16;
}
.coupon div {
	padding: .25em 0;
	display: flex;
}
.coupon label {
	flex-basis: 20%;
}
.coupon_page {
	font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
	width: 6in;
	height: 4in;
	background-color: white;
	margin-left: 0;
	margin-right: 50px;
	padding: .25in;
}
.coupon_background {
	font-family: inherit;
	width: 5.5in;
	height: 3.5in;
	background-color: lightsteelblue;
	border: .25in solid steelblue;
	position: relative;
	z-index: 0;
}
.coupon_image {
	display: block;
	width: 4in;
	height: 2in;
	margin: -.25in auto;
}
.coupon_title {
	font-family: inherit;
	text-align: center;
	font-size: 24pt;
	margin-top: 0;
}
.coupon_description {
	font-family: inherit;
	text-align: center;
}
.coupon_bold {
	font-family: inherit;
	font-weight: bold;
}
.coupon_expiration {
	font-family: inherit;
	position: absolute;
	left: 0;
	top: 0;
	margin: .125in;
	color: red;
	font-weight: bold;
	font-size: 8pt;
}
.coupon_code {
	font-family: inherit;
	position: absolute;
	left: 0;
	bottom: 0;
	margin: .125in;
	font-size: 8pt;
}
.coupon_recipient {
	font-family: inherit;
	text-align: right;
	position: absolute;
	right: 0;
	bottom: 0;
	margin: .125in;
	font-size: 8pt;
}
.coupon_footer {
	font-family: inherit;
	text-align: center;
	width: 5in;
	position: absolute;
	left: 0;
	bottom: 0;
	margin: .125in 0;
	font-size: 8pt;
}
@media (min-width: 768px) {
	nav {
		display: block !important;
	}
	.mobile {
		display: none;
	}
	.desktop {
		display: table-cell;
	}
}
@media (max-width: 767px) {
	.mobile {
		display: table-cell;
	}
	.desktop {
		display: none;
	}
	main {
		width: 100%;
		padding: 0 1em;
	}
	header {
		display: flex;
		flex-direction: column;
		min-height: 60px;
		height: auto;
	}
	header > div {
		width: 100%;
		height: 60px;
	}
	.login {
		width: 90%;
	}
	#hamburger {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 50px;
		height: 50px;
		background-color: #456e49;
		color: #ffffff;
	}
	#hamburger:hover {
		background-color: #2c5530;
		cursor: pointer;
	}
	nav {
		display: none;
	}
	nav menu {
		grid-auto-flow: row;
	}
	nav li {
		position: static;
	}
	nav menu li a {
		height: 60px;
		padding: 0 20px;
		width: 100%;
	}
	form.password div.newpassrow {
		flex-direction: column;
	}
	form.password div.newpassrow div {
		margin-bottom: 20px;
	}
}
main h2 {
	margin: 0;
	padding: 25px 0;
	font-size: 22px;
	color: #123b16;
}

/* Secure Content General Styles */
article {
	box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
	margin: 25px 0;
	padding: 25px;
	background-color: #fff;
	display: flex;
	flex-direction: column;
}
article > h4 {
	display: flex;
	margin: 0;
	margin-bottom: 1em;
	padding: .5em 1em;
	line-height: 2em;
	color: white;
	align-items: center;
}
article > h4 span {
	flex-grow: 1;
}
article > h4 > i {
	margin-right: 1em;
}
article > h4 button {
	background-color: transparent;
	border: none;
	color: white;
	padding: .25em;
	border-radius: .25em;
}
article > h4 button:hover {
	color: rgba(255, 255, 255, 0.5);
}
article > h4 button:active {
	color: #123b16;
}
article > p {
	padding: 5px;
	margin: 0 0 10px 0;
}

/* Secure Content Table Styles */
article > table {
	border-spacing: 0;
}
article > table th {
	padding: 5px;
	border-bottom: 1px solid #123b16;
}
article > table td {
	padding: 5px;
	border-top: 1px solid #123b16;
}
article > table tbody tr:first-child td {
	border-top: 0;
}
article > table td:first-child {
	font-weight: bold;
	color: #456e49;
	padding-right: 15px;
}
article > table td a {
	color: #456e49;
	text-decoration: none;
}
article > table td a:hover {
	color: #2eb885;
}

/* Secure Form Styles */
article > form {
    display: flex;
    flex-direction: column;
    background-color: white;
    padding: 1em;
}
article > form div:nth-child(1) {
    justify-content: end;
}
article > form fieldset {
    margin: 1em 0;
    display: flex;
    flex-direction: column;
    background-color: #fafafa;
    border-color: #456e49;
}
article > form fieldset legend {
    background-color: #456e49;
    color: white;
    padding: .75em;
    flex-grow: 1;
    font-size: large;
    font-weight: bold;
}
article > form fieldset div {
    display: flex;
    flex-direction: row;
    line-height: 2em;
    vertical-align: top;
}
article > form fieldset div label {
    margin-left: 1em;
}
article > form input[type="date"] {
    line-height: 2em;
}
article > form input[type="checkbox"] {
    display: inline-block;
    vertical-align: text-top;
}
.register {
	width: 400px;
	background-color: #ffffff;
	box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.3);
	margin: 100px auto;
}
.register h1 {
	text-align: center;
	color: #5f8863;
	font-size: 24px;
	padding: 1em 0;
	border-bottom: 1px solid #dee0e4;
}
.register form {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding-top: 20px;
}
.register form div {
	display: flex;
	flex-direction: row;
}
.register form label {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 50px;
    height: 50px;
	background-color: #456e49;
	color: #ffffff;
}
.register form input[type="password"], .register form input[type="text"], .register form input[type="email"] {
	height: 50px;
	border: 1px solid #dee0e4;
	margin-bottom: 20px;
	padding: 0 15px;
	flex-grow: 1;
}
.register form input[type="submit"] {
	width: 100%;
	padding: 15px;
	margin-top: 20px;
	background-color: #456e49;
    border: 0;
	cursor: pointer;
	font-weight: bold;
	color: #ffffff;
	transition: background-color 0.2s;
}
.register form input[type="submit"]:hover {
	background-color: #2c5530;
	transition: background-color 0.2s;
}
@media (max-width: 767px) {
    /* Sub nav */
    .subnav-content {
		position: static;
        display: none;
        background-color: #123b16;
    }
}

#cartboard td:last-child {
	text-align: right;
}

#cartboard .center {
	text-align: center;
}

#cartboard_head {
	box-shadow: none;
	margin: 0;
	padding: 0;
	background-color: inherit;
	display: flex;
	flex-direction: row;
	border-bottom: 1px solid #e0e0e3;
}

#cartboard_head h2 {
	font-size: 64px;
	flex-grow: 1;
	border: none;
}

#cart_count {
	background-color: #123b16;
	font-size: 48px;
	font-weight: bold;
	color: white;
	height: 2em;
	margin: .5em 0;
	margin-left: .5em;
	padding: 0 .5em;
	line-height: 2em;
	text-align: center;
}

#cartboard_content.content {
	font-size: 24px;
	width: 1920px !important;
	height: 1080px !important;
	overflow: hidden;
	padding: 1em;
}

#cartboard_content td, #cartboard_content th {
	font-size: 24px;
	padding: .5em;
}

#cartboard th:nth-child(3) {
	min-width: 40%;
}

.select {
	display: flex;
	margin-bottom: 1em;
}

.select label {
	margin-left: 0 !important;
	margin-right: 1em;
}

.select select {
	flex-grow: 1;
}

#cartboard_content img {
	width: 96px;
	height: 96px;
	margin: 24px;
}