/* ---------- Contents ---------- */

/* ----- Imports ----- */
/* ----- Reset ----- */
/* ----- Page ----- */
/* ----- Links ----- */
/* ----- Colours ----- */
/* ----- Layout ----- */
/* ----- Forms ----- */
/* ----- Navigation ----- */
/* ----- Gallery ----- */
/* ----- Details ----- */
/* ----- Recipe ----- */
/* ----- Orders ----- */
/* ----- Admin ----- */
/* ----- Hours ----- */
/* ----- Footer ----- */


/* ----- Imports ----- */

@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Galada&display=swap');

/* ----- Reset ----- */

html, body, div, h1, h2, h3, hr {
	margin: 0;
	padding: 0;
}

/* ----- Page ----- */

body {
	color: rgb(0,0,0,0.8);
	font-family: 'Roboto Slab', serif;
	font-size: 16px;
}

/* ----- Links ----- */

a:link {
	color: rgb(0,0,0,0.8); /* unvisited link */
	text-decoration: none;
}

a:visited {
	color: rgb(0,0,0,0.8); /* visited link */
	text-decoration: none;
}

a:hover {
	color: #1189CA; /* mouse over link */
	text-decoration: none;
}

a:active {
	color: #1189CA; /* selected link */
	text-decoration: none;
}

a.sidebar-link:link {
	color: #FFFFFF; /* unvisited link */
	text-decoration: none;
}

a.sidebar-link:visited {
	color: #FFFFFF; /* visited link */
	text-decoration: none;
}

a.sidebar-link:hover {
	color: #FFFFFF; /* mouse over link */
	text-decoration: none;
}

a.sidebar-link:active {
	color: #FFFFFF; /* selected link */
	text-decoration: none;
}

/* ----- Colours ----- */

.light-active {
	color: #1189CA; /* blue */
}

.dark-active {
	color: #FADF46; /* yellow */
}

/* ----- Layout ----- */

html, body {
	height: 100%;
	width: 100%;
}

.bold {
	font-weight: 700;
}

.border-top {
	border-top: 2px solid rgb(0,0,0,0.2);
	border-top-style: dotted;
}

.center {
	text-align: center;
}

.col-2, .col-3 {
	flex: none;
}

.cursor {
	cursor: pointer;
}

.container {
	align-items: stretch;
	display: block;
	height: 100%;
}

h1 {
	font-size: 1.75em;
}

h2 {
	font-size: 1.5em;
}

h3 {
	font-size: 1.25em;
}

.hide {
	display: none;
}

hr {
	background-color: rgb(0,0,0,0.8);
	border: 0;
	height: 0.25em;
	margin: 0.5em 0 2em 0;
	width: 4em;
}

.step-2 hr {
	margin: 0.5em 0 1.25em 0;
}

.flex-row {
	border-top: 1px solid #CCCCCC;
	align-items: center; 
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	padding: 2em 0;
}

.flex-col {
	flex: auto;
}

.flex-col-image {
	align-items: center;
	aspect-ratio: 1 / 1;
	justify-content: center;
	max-height: 4em;
	max-width: 4em;
}

.flex-col-image, .flex-col-num {
	width: 20%;
}

.flex-col-image img {
	border: 1px solid #CCCCCC;
	border-radius: 0.5em;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.flex-col-name {
	font-weight: bold;
}

.flex-col-name-inside {
	padding-left: 1em;
}

.flex-col-name-inside .gallery-price {
	font-size: 1.25em;
	line-height: 1em;
	padding-top: 0.25em;
}

.flex-col-name {
	width: 40%;
}

.flex-col-right {
	text-align: right;
}

.inner-top {
	padding: 0 0 2em 0;
}

.inner-bottom {
	padding: 0;
}

.inner-border-top {
	border-top: 1px solid #CCCCCC;
	padding: 1em 0;
}

.item {
	flex: none;
	padding: 2em;
}

.item.sidebar, .item.main, .item.footer  {
	padding: 0;
}

label {
	display: block;
	padding-bottom: 0.25em;
	padding-top: 0.75em;
}

.logo-ontario-made {
	float: right;
	padding: 0 0 0 1em;
	width: 75px;
}

.logo-ontario-made img {
	width: 100%;
}

.main-container {
	padding: 2em;
	position: relative;
}

.main-container-starburst {
	position: relative;
	width: 100%;
}

.main-container-starburst img {
	position: absolute;
	right: -0.5em;
	top: -0.5em;	
	width: 25%;
}

.notice {
	background: rgb(0,0,0,0.05);
	background: linear-gradient(0deg, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.1) 100%);
	border: 1px solid rgb(0,0,0,0.1);
	box-shadow: -4px 0 0 0 #1189CA;
	color: rgb(0,0,0,0.6);
	display: block;
	font-family: 'Roboto Condensed', sans-serif;
	font-weight: 400;
	font-size: 1em;
	line-height: 1.6;
	margin-left: 4px;
	padding: 1em;
}

.row {
	display: block;
}

/* .row + .row {
	padding-top: 1em;
} */

.section-heading {
	font-size: 1.5em;
	font-weight: 400;
	padding-bottom: 0.25em;
	text-align: center;
}

.section-heading i {
	font-size: 1.25em;
	padding: 1.25em 0 0.25em 0;
}

.section-message {
	font-size: 1.25em;
	font-weight: 300;
	padding: 1em 1em 2em 1em;
	text-align: center;
}

.show {
	display: block;
}

.sidebar, .footer {
	color: #FFFFFF;
	position: relative;
}

.sidebar.open, .footer.open {
	background: rgb(16,137,202);
	background: linear-gradient(0deg, rgba(8,101,173,1) 0%, rgba(16,137,202,1) 100%);
}

.sidebar.closed, .footer.closed {
	background: rgb(0,0,0,0.8);
	background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
}

.sidebar > .sidebar-logo {
	padding: 2em;
	text-align: center;
}

.sidebar > .sidebar-logo > a > img {
	width: 75%;
}

.sidebar-footer {
	display: none;
}

.sticky {
	position: sticky !important;
}

/* table {
	margin: 2em auto;
} */

table tr td {
	font-size: 1.25em;
}

table tr td.label {
	font-weight: 700;
	padding-right: 1.5em;
}

.text-tip {
	background-color: #B0D236; /* green */
	border-radius: 0.25em;
	color: #FFFFFF;
	display: inline-block;
	font-size: 0.95em;	
	font-weight: 300;
	margin-top: 1em;
	padding: 0.2em 0.4em;
}

.top {
	bottom: 0.05em;
	color: rgb(0,0,0,0.1);
	cursor: pointer;
	font-size: 1.5em;
	position: fixed;
	right: 0.23em;
}

#top {
	display: none;
}

#top-mobile {
	display: block;
}

ol, ul {
	font-size: 1.25em;
	font-weight: 300;
	padding-bottom: 1.5em;
}

ol {
	padding-right: 1.25em;
}

ul {
	padding: 0;
}

ul li {
	list-style-position: inside;
	list-style-type: none;
}

ul.string {
	padding: 0 1em 1.5em 1em;
}

ul.string li {
	list-style-type: none;
}

.wave-small {
	height: 1em;
	position: relative;
	top: 0.2em;
	padding: 1em;
}

/* ----- Forms ----- */

input, button {
  all: unset;
}

.input {
	border: 1px solid #999999;
	border-radius: 0.5em;
	font-family: 'Roboto Slab', serif;
	font-size: 1em;
	padding: 0.5em;
	
}

.input-qty {
	border: 1px solid #999999;
	border-radius: 0.5em;
	font-family: 'Roboto Slab', serif;
	font-size: 1em;
	max-width: 4em;
	padding: 0.5em;
	text-align: center;
}

.button-container {
	background-image: linear-gradient(to bottom,
		 rgba(255,255,255,0),
		 rgba(255,255,255,0),
		 rgba(255,255,255,0),
		 rgba(255,255,255,0.1),
		 rgba(255,255,255,0.2),
		 rgba(255,255,255,0.3),
		 rgba(255,255,255,0.4),
		 rgba(255,255,255,0.5),
		 rgba(255,255,255,0.6),
		 rgba(255,255,255,0.7),
		 rgba(255,255,255,0.8),
		 rgba(255,255,255,0.9),
		 rgba(255,255,255,1),
		 rgba(255,255,255,1),
		 rgba(255,255,255,1)
	);
	bottom: 0;
	left: 0;
	opacity: 0.9;
	padding: 1em 0;
	position: relative;
	right: 0;
}

.button {
	background-color: #FFFFFF;
	border: 1px solid #999999;
	border-radius: 0.5em;
	cursor: pointer;
	font-weight: bold;
	padding: 1em 0;
	text-align: center;
	width: calc(50% - 0.5em);
}

.button(:first-of-type) {
	margin-right: 0.5em;
}

.button + .button {
	margin-left: 0.5em;
}

.button.active {
	background: #1189CA;
	border-color: #1189CA;
	color: #FFFFFF;
}

textarea {
	border: 1px solid #999999;
	border-radius: 0.5em;
	font-family: 'Roboto Slab', serif;
	height: 4em;
	margin: 0.25em 0 1em 0;
	padding: 0.5em;
	width: 98%;
}

/* ----- Navigation ----- */

.nav {
	background: #FFFFFF;
	border-bottom: 1px solid rgb(0,0,0,0.2);
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 1em;
	font-weight: 700;
	text-transform: uppercase;
	width: 100%;
}

.nav-toggle > div, .nav-right > div {
	padding: 1em 2em;
}

.nav-toggle {
	flex: 50%;
	max-width: 50%;
	order: 1;
}

.nav-toggle > div > i:hover {
	color: #1189CA; /* blue */
}

.nav-left {
	border-top: 1px solid rgb(0,0,0,0.2);
	display: none;
	flex: 100%;
	max-width: 100%;
	order: 3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nav-right {
	flex: 50%;
	max-width: 50%;
	order: 2;
	text-align: right;
}

.nav-right > div > a > i {
	padding-left: 0.5em;
}

.nav-item {
	display: block;
	padding: 1em 2em;
}

.nav-item + .nav-item {
	border-top: 1px solid rgb(0,0,0,0.2);
}

.nav-active {
	color: #1189CA !important; /* blue */
}

#nav-back {
	display: none;	
}

/* ----- Gallery ----- */

.gallery-description {
	font-weight: 300;
	padding: 0.5em 0 1em 0;
}

.gallery {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.gallery-item {
	flex: 50%;
	max-width: 50%;
}

.gallery-item-show-details {
	position: relative;
}

.gallery-item-show-details i {
	bottom: 0.5em;
	color: rgb(255,255,255,0.7);
	font-size: 1.5em;
	position: absolute;
	right: 0.25em;
	z-index: 10;
}

.gallery-item:nth-child(odd) .gallery-item-container {
	padding-right: 1em;
}

.gallery-item:nth-child(even) .gallery-item-container {
	padding-left: 1em;
}

.gallery-item .gallery-item-container img, .product-image {
	background: rgb(0,0,0,0.05);
	background: linear-gradient(0deg, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.1) 100%);
	border: 1px solid rgb(0,0,0,0.1);
	border-radius: 0.5em;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gallery-item-container {
	align-items: center;
	aspect-ratio: 1 / 1;
	justify-content: center;
}

.gallery-heading {
	position: relative;
}

.gallery-item-text-main, .gallery-item-text {
	display: inline-block;
	padding: 1em 0 2em 0;
	width: 100%;
}

.gallery-item-text-main {
	text-align: left;
}

.gallery-item-text {
	text-align: center;
}

.gallery-item-description {
	padding-top: 0.5em;
	line-height: 1.5;
}

.gallery-item-text-small {
	font-weight: 300;
	padding-bottom: 0.25em;
}

.gallery-item.category {
	flex: 50%;
	max-width: 50%;
}

.gallery-item-sold-out {
	background-color: #F0843F; /* orange */
	color: #FFFFFF;
	display: inline-block;
	font-weight: 700;
	margin: 0.5em auto 0 auto;
	padding: 0.25em 0.5em;
	text-transform: uppercase;
}

.gallery-price, .gallery-total {
	color: #1189CA; /* blue */
	display: inline-block;
	font-family: 'Galada', cursive;
	font-size: 1.5em;
}

.gallery-total.inactive {
	color: #CCCCCC;
}

.gallery-price:before, .gallery-total:before {
	content: '$';
}

.gallery-price-unit {
	color: #1189CA; /* blue */
	display: inline-block;
	font-family: 'Galada', cursive;
	font-size: 1.25em;
}

.gallery-pre-order {
	padding: 0;
}

.gallery-pre-order-filters {
	padding: 1em 0;
}

.gallery-pre-order-filter {
	border: 1px solid #999999;
	border-radius: 0.5em;
	display: inline-block;
	margin: 0 1em 1em 0;
	min-width: 8em;
	padding: 0.5em 0;
	font-size: 0.85em;
	font-weight: bold;
	text-align: center;
}

.gallery-pre-order-filter:hover {
	background: #1189CA;
	border-color: #1189CA;
	color: #FFFFFF;
	cursor: pointer;
}

.gallery-pre-order-filter.active {
	background: #1189CA;
	border-color: #1189CA;
	color: #FFFFFF;
}

/* ----- Details ----- */

.product-image-container {
	aspect-ratio: 1 / 1;
	padding: 0 0 2em 0;
}

.product-details-container {
	margin-bottom: 1.5em;
}

.product-price, .product-description, .product-weight {
	text-align: center;
}

.product-price {
	border-bottom: 2px solid rgb(0,0,0,0.2);
	border-bottom-style: dotted;
	color: #1189CA; /* blue */
	font-family: 'Galada', cursive;
	font-size: 3em;
	margin-bottom: 0.5em;
}

.product-description {
	font-size: 1.25em;
	font-weight: 300;
	margin-bottom: 1.5em;
}

.product-quantity {
	color: #1189CA; /* blue */
	font-family: 'Galada', cursive;
	font-size: 0.65em;
	position: relative;
	top: -0.35em;
}

.product-label {
	display: inline-block;
	padding-right: 0.5em;
	font-weight: 400;
}

.product-weight {
	font-size: 1.25em;
	font-weight: 300;
	padding: 0.5em 0 1.5em 0;	
}

.product-ingredient {
	border-radius: 0.25em;
	display: inline-block;
	margin: 0.1em 0;
	padding: 0 0.3em 0.1em 0.3em;
}

.allergen {
	background-color: #FADF46; /* yellow */
}

.allergen-legend {
	background-color: #FADF46; /* yellow */
	border-radius: 0.25em;
	display: block;
	font-weight: 300;
	margin: 0 auto 3em auto;
	padding: 0.2em 0.4em 0.3em 0.4em;
	width: intrinsic;
}

/* ----- Recipe ----- */

.recipe-details-container {
	border-bottom: 2px solid rgb(0,0,0,0.2);
	border-bottom-style: dotted;
	margin-bottom: 1.5em;
}

.recipe-description {
	text-align: center;
}

.recipe-description {
	font-size: 1.5em;
	font-weight: 300;
	margin-bottom: 0.5em;
}

/* ----- Orders ----- */

table.order-details {
	margin: 1em auto;
	width: 100%;
}

table.order-details tr td {
	font-size: 1em;
}

/* ----- Admin ----- */

.admin-table {
	border-collapse: collapse;
	margin: 0 !important;
	width: 100%;
}

.admin-select {
	font-size: 1em;
}

.admin-category-heading {
	padding: 1em 0.5em;
}

.admin-table-heading {
	background-color: #F3F3F3;
	font-weight: bold;
	padding: 0.5em;
}

.cell-border-top {
	border-top: 2px solid #F3F3F3;
	padding: 0.5em;
}

.cell-bg-staff {
	background-color: rgb(176,210,54, 0.15);
}

/* ----- Hours ----- */

.hours-status {
	border-bottom: 1px solid rgb(255,255,255,0.2);
	display: flex;
	font-family: 'Roboto Condensed', sans-serif;
	font-weight: 700;
	text-transform: uppercase;
}

.hours-status-left {
	flex: 1;
	flex-grow: 16;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hours-status-right {
	flex: 1;
	text-align: right;
}

.hours-status-left, .hours-status-right {
	padding: 1em;
}

.hours-list {
	display: none;
	position: absolute;
	z-index: 10;
	width: 100%;
}

.hours-list.open {
	background: rgb(16,137,202);
	background: linear-gradient(0deg, rgba(8,101,173,97%) 0%, rgba(16,137,202,1) 100%);
}

.hours-list.closed {
	background: rgb(50,50,50,1);
	background: linear-gradient(0deg, rgba(30,30,30,97%) 0%, rgba(50,50,50,1) 100%);
}

.hours-container {
	padding: 1em;
}

.hours {
	display: flex;
}

.hours-item {
	flex: 1;
	font-family: 'Roboto Condensed', sans-serif;
	padding: 0.15em 0;
}

.hour-day {
	text-align: left;
}

.hour-time {
	text-align: right;
}
	
/* ----- Footer ----- */

.footer {
	text-align: center;
}

.footer-container {
	padding: 2em 0 1em 0;
}

.footer-heading {
	color: #FADF46;
	padding-bottom: 0.25em;
}

.footer-text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.footer-map {
	padding: 2em;
}

.footer-map > a > img {
	width: 85%;
}

/* ----- Media Queries ----- */

/* Navigation */

@media only screen and (min-width: 100px) {
	
	/* ----- Navigation ----- */
	
	.nav > div > div {
		padding: 1em 2em;
	}
	
	.nav-toggle {
		display: none;
		flex: 1;
	}
	
	.nav-left {
		border: 0;
		display: block;
		flex: 1;
		order: 2;
	}
	
	.nav-right {
		display: block;
		flex: 1;
		order: 3;
	}
	
	.nav-item {
		display: inline-block;
		padding: 0 1em 0 0;
	}
	
	.nav-item + .nav-item {
		border-top: 0;
	}
	
}

/* Tablet Portrait */

@media only screen and (min-width: 800px) {
	
	/* ----- Layout ----- */
	
	h1 {
		font-size: 2em;
	}
	
	.notice {
	    font-size: 1.5em;
	    padding: 2em;
	}
	
	.container {
		display: flex;
	}
	
	.inner-bottom {
		padding: 0 1em;
	}
	
	.inner-top {
		padding: 0 1em 2em 1em;
	}
	
	.item {
		flex: 1;
		padding: 2em;
	}
	
	.logo-ontario-made {
		padding: 0 0 0 2em;
		width: 125px;
	}
	
	.sidebar, .main {
		position: relative;
		overflow-y: scroll;
	}
	
	.sidebar-footer {
		display: block;
		text-align: center;
	}
	
	.main {
		flex-grow: 2;
	}
	
	.main-container-starburst img {
		width: 15%;
	}
	
	.top {
		bottom: 0.25em;
		font-size: 2em;
		right: 0.3em;
	}
	
	#top {
		display: block;
	}
	
	#top-mobile {
		display: none;
	}
	
	/* ----- Forms ----- */
	
	.button-container {
		padding: 1em;
	}
	
	/* ----- Navigation ----- */
	
	.nav > div > div {
		padding: 1em 3em;
	}
	
	#nav-back {
		background-color: #FFFFFF;
		border-radius: 1em;
		display: block;
		height: 2em;
		margin-left: -1em;
		margin-top: -1em;		
		position: fixed;
		top: 50%;
		width: 2em;
		z-index: 10;
	}
	
	#nav-back div {
		border-radius: 0.875em;
		color: #FFFFFF;
		height: 1.75em;
		left: 0.125em;
		position: relative;
		text-align: center;
		top: 0.125em;
		width: 1.75em;
		z-index: 20;
	}
	
	#nav-back.open div {
		background-color: #1189CA; /* blue */
	}
	
	#nav-back.closed div {
		background-color: rgb(50,50,50,1); /* dark grey */
	}
	
	#nav-back div i {
		position: relative;
		top: 0.15em;
	}
	
	/* ----- Gallery ----- */
	
	.gallery-item {
		flex: 33%;
		max-width: 33%;
	}
	
	.gallery-item .gallery-item-container {
		padding-left: 1em;
		padding-right: 1em;
	}
	
	.gallery-heading {
		margin: 0 1em;
	}
	
	.gallery-pre-order {
		padding: 0 1em;
	}
	
	/* ----- Details ----- */

	.product-image-container {
		padding: 0 2em 0 1em;
	}
	
	.product-details-container {
		margin: 2em 1em 0 1em;
	}
	
	.product-weight {
		font-size: 1.5em;
	}
	
	.logo-ontario-made {
		position: relative;
		top: -0.75em;
	}
	
	/* ----- Recipe ----- */
	
	.recipe-details-container {
		margin: 2em 1em 0 1em;
	}
	
	/* ----- Footer ----- */
	
	.footer {
		display: none;
	}
	
	.footer-container {
		padding-top: 0;
	}
	
}

/* Tablet Landscape */

@media only screen and (min-width: 1024px) {
	
	/* ----- Layout ----- */
	
	.col-2 {
		flex: 50%;
	}
	
	.col-3 {
		flex: 50%;
	}
	
	.col-3:nth-child(1) .col-3-container, .col-3:nth-child(2) .col-3-container {
		border-top: none;
	}
	
	.col-3:nth-child(3) {
		flex: 100%;
	}
	
	/* .flex-row {
		align-items: center; 
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
	}
	
	.flex-col {
		flex: auto;
	}
	
	.flex-col-image, .flex-col-num {
		width: 20%;
	}
	
	.flex-col-name {
		width: 40%;
	}
	
	.flex-col-name-inside {
		padding-left: 1em;
	}
	
	.flex-col-right {
		text-align: right;
	} */
	
	.row {
		display: flex;
		flex-wrap: wrap;
	}
	
	/* table {
		margin: 2em 0;
	} */
	
	/* ----- Details ----- */

	.product-image-container {
		padding: 0 2em 2em 1em;
	}
	
	.product-details-container {
		margin: 0 1em 0 0;
	}
	
	.product-price, .product-description, .product-weight {
		text-align: left;
	}
	
	/* ----- Recipe ----- */
	
	.recipe-details-container {
		margin: 0 1em 0 0;
	}
	
	.recipe-description {
		text-align: left;
	}
	
}

/* Desktop */

@media only screen and (min-width: 1200px) {
	
	/* ----- Layout ----- */
	
	.border-top {
		margin-top: 3em;
	}
	
	.item {
		padding: 4em;
	}
	
	.sidebar > .sidebar-logo {
		padding: 3em;
	}
	
	/* ----- Navigation ----- */
	
	.nav {
		font-size: 1.25em;
	}
	
	.nav > div > div {
		padding: 1em 2.5em;
	}
	
	/* ----- Gallery ----- */
	
	.gallery-item {
		flex: 25%;
		max-width: 25%;
	}
	
	/* ----- Details ----- */

	.product-image-container {
		padding: 0 2em 0 1em;
	}
	
	/* ----- Hours ----- */

	.hours-status, .hours-list {
		font-size: 1.25em;
	}
	
	/* ----- Footer ----- */
	
	.footer-text {
		font-size: 1em;
	}
	
	.footer-map > a > img {
		width: 70%;
	}
	
}

@media only screen and (min-width: 1200px) {
	
	/* ----- Layout ----- */
	
	.col-3, .col-3:nth-child(3) {
		flex: 33%;
	}

}