
/*** GENERAL SITE-WIDE DEFINITIONS **/

html, body {
	margin: 4px 0 0 0;
	padding: 0;
	height: 100%;
	/* overflow-x: clip;  CAUSED 420px responsive to fail <input> */
	color: #58595B;
	background: #ffffff;
	font-family: "lato", Arial;
	font-weight: 400;
	font-size: 16px;
	line-height: 20px;
} 

/* Responsive */
@media screen and (max-width:1024px) {
	
	html, body {
		width: 1024px;
		/* overflow-x: initial; */
	}
}
@media screen and (max-width:820px) {
	
	html, body {
		width: 820px;
		/* overflow-x: initial; */
	}
}
@media screen and (max-width:420px) {
	
	html, body {
		min-width: 420px;
	    width: 420px;
		/* overflow-x: clip; */
	}
}
@media screen and (max-width:400px) {
	
	html, body {
		min-width: 400px;
	    width: 400px;
	}
}
@media screen and (max-width:375px) {
	
	html, body {
		min-width: 375px;
	    width: 375px;
	}
}

/*** HTML ELEMENTS ***/

a {
	color: #B1005D;
	text-decoration: none;
}
a:hover {
	cursor: pointer;
	text-decoration: underline;
}

fieldset {
	margin: 0;
	padding: 0;
	border: none;
}

button {
	margin: 0 8px 0 0;
	padding: 12px 18px;
	color: #FFFFFF;
	background-color: #B1005D;
	border: none;
}
button:hover {
	cursor: pointer;
	background-color: #64002D;
}

p.success {
	width: 857px;	/* same as menu bar! */
	margin: 10px auto 20px auto;
	padding: 10px;
	text-align: center;
	color: #a8c399;
	font-weight: 600;
	border: 3px solid #a8c399;
}

p.error {
	width: 857px;	/* same as menu bar! */
	margin: 10px auto 20px auto;
	padding: 10px;
	text-align: center;
	color: #B1005D;
	font-weight: 600;
	border: 3px solid #B1005D;
}

@media screen and (max-width:820px) {
	p.success,
	p.error {
		width: 90%;
	}
}

input, select {
	margin: 2px 0 4px 0;
	padding: 4px 7px;
	font-size: 1em;
}

input[type="number"] {
	text-align: center;
}

input[type="number"].quantity {
	width: 50px;
}

textarea {
	width: 50%;
}

table {
	margin: 0 0 10px 0;
}

table tr td {
	margin: 0;
	padding: 2px 6px;
}

/* Responsive */
@media screen and (max-width:420px) {

	.hide_responsive {
		display: none;
	}
	
	textarea {
		width: 80%;
	}
}	

/** MAIN: Template Definitions **/

main {
	position: relative;
	min-height: 400px;
}

main#public_template {
	margin: 0 0 40px 0;
}

main section#message h1,
main#public_template h1,
main#catalog_template h1 {
	margin: 0;
	padding: 30px 0 20px 0;
	font-size: 2em;
	line-height: 1.2em;
	text-align: center;
	color: #B1005D;
}

main#public_template h2,
main#catalog_template h2 {
	margin: 0;
	padding: 0 0 10px 0;
	font-size: 1.6em;
	text-align: left;
	color: #58595B;
}

main#public_template h3,
main#catalog_template h3 {
	margin: 0;
	padding: 20px 0 10px 0;
	font-size: 1.3em;
	text-align: left;
	color: #B1005D;
}

main#catalog_template h3 {
	padding: 0 0 10px 0;
	color: #58595B;
}

main section#message div.info,
main#public_template div.info {
	width: 70%;
	margin: 30px auto;
}

main section#message div.info img,
main#public_template div.info img {
	float: left;
	margin: 30px 50px 20px 0;
	border: 4px solid #f1f2f2;
}

@media screen and (max-width:1024px) {

	main section#message div.info,
	main#public_template div.info {
		width: 86%;
	}
}
@media screen and (max-width:420px) {
	
	main section#message div.info img,
	main#public_template div.info img {
		width: 100%;
	}
}

main#public_template div.page_banner {
	margin: 0;
}

main#public_template div.page_banner img {
	width: 100%;
}

/* Responsive */
@media screen and (max-width:420px) {

	main#public_template h1,
	main#catalog_template h1 {
		font-size: 1.8em;
		line-height: 1em;
	}

	main#public_template h2,
	main#catalog_template h2 {
		margin: 0;
		padding: 0 0 10px 0;
		font-size: 1.5em;
		text-align: left;
		color: #58595B;
	}
	
	main#public_template h3 {
		margin: 0;
		padding: 0 0 10px 0;
		font-size: 1.2em;
		text-align: left;
		color: #58595B;
	}

	main#public_template div.info {
		width: 88%;
		margin: 0 auto;
	}
}

/*** HOME PAGE: Banner Section ***/

/* Banner slideshow container */
main section#banner {
	width: 100%;
  	position: relative;
  	margin: auto;
}

main section#banner img {
    width: 100%;
}

/* Hide the images by default */
main section#banner div.slide {
  	display: none;
}

/* Next & previous buttons 
main section#banner a.prev, section#banner a.next {
  	cursor: pointer;
  	position: absolute;
  	top: 50%;
  	width: auto;
  	margin-top: -22px;
  	padding: 16px;
  	color: white;
  	font-weight: bold;
  	font-size: 18px;
  	transition: 0.6s ease;
  	border-radius: 0 3px 3px 0;
  	user-select: none;
}

/* Position the "next button" to the right 
main section#banner a.next {
  	right: 0;
  	border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
main section#banner a.prev:hover, section#banner a.next:hover {
  	background-color: rgba(0,0,0,0.8);
}

/* Number text (1/3 etc) */
main section#banner div.numbertext {
  	color: #f2f2f2;
  	font-size: 12px;
  	padding: 8px 12px;
  	position: absolute;
  	top: 0;
}

/* Fading animation */
main section#banner div.slide.fade {
  	-webkit-animation-name: fade;
  	-webkit-animation-duration: 3.5s;
  	animation-name: fade;
  	animation-duration: 3.5s;
}

@-webkit-keyframes fade {
  	from {opacity: .4}
  	to {opacity: 1}
}

@keyframes fade {
  	from {opacity: .4}
  	to {opacity: 1}
}

/*** HOME PAGE: Message Section ***/

/*** HOME PAGE: Events Section ***/
/*** HOME PAGE: Featured Products Section ***/
/*** CATALOG PAGES: Categories, Subcategories, Product List and Product Detail ***/

main section#events h2.title,
main section#products h2.title,
main div#catalog h2.title,
main#public_template h2.title {
	margin: 20px 0 10px 0;
	padding: 24px 0 0 0;
	width: 100%;
	height: 44px;
	text-align: center;
	vertical-align: middle;
	background-color: #f1f2f2;
	color: #B1005D;
	font-size: 1.4em;
	font-weight: 600;
	background-image: url('/application/themes/spoon/images/swirlbanner.png');
}

/* Events */
main div.event_wrapper {
	width: 80%;
	margin: 0 auto;
	min-height: 160px;			/* padding at bottom */
}

main div.event_wrapper div.event_image {
	 float: left;
	 margin: 0px 50px 20px 0;
	 min-width: 400px;
	 min-height: 300px;
	 text-align: center;
}

main div.event_wrapper div.event_image p {
	position: absolute;
	padding: 80px 0 0 80px;
	color: #FFFFFF;
	font-size: 32px;
	font-weight: 800;
}

main div.event_wrapper a.more_events {
	padding: 6px 10px;
	color: #D1D3D4;
	font-weight: 600;
	background-color: #64002D;
}

main div.chef_info {
	padding-bottom: 30px
}

main div.chef_info img {
	float: left;
	margin: 0;
	padding: 0 20px 10px 0;
}

/* Product Catalog */

main div.product_wrapper {	/* wrap the row of products */
	max-width: 1024px;
	margin: 0 auto;
	text-align: center;
}

main div.product_wrapper div.product {			/* one product image and description */
	display: inline-block;
	margin: 10px 10px 10px 10px;
}

/* Responsive */
@media screen and (max-width:820px) {

	main div#catalog {
		max-width: 820px;
	}

	main div.product_wrapper {					/* wrap the row of products */
		max-width: 820px;
		margin: 0;
	}
}
@media screen and (max-width:420px) {

	main div#catalog {
		width: 420px;
	}

	main div.product_wrapper {					/* wrap the row of products */
		margin: 0 5% 20px 5%;
	}
	
	main div.product_wrapper div.product { 
		float: none;
		padding: 0 0% 0 15%;
	    /*width: 90%;								/* 1 per row */
	}
}

main div.product_wrapper div.product a.image {
	text-decoration: none;
}

main div.product_wrapper div.product_image {	/* product background image */
	margin: 20px 0px 10px 0px;
	padding: 0;
	width: 210px;						/* same as description width */
	height: 210px;	
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	outline: 10px solid #f1f2f2;		/* border */
	border: 6px solid #FFFFFF;			/* provides inner padding */
}

@media screen and (max-width:820px) {
	main div.product_wrapper div.product_image {	/* product background image */
		width: 200px;
		height: 200px;
	}
}

main div.product_wrapper div.description {
	margin: 0;
	padding: 6px 0;
	text-align:center;
	overflow-x: hidden;
}

main div.product_wrapper div.description a.qv_anchor:hover {
	cursor: pointer;
} 

/* Detail page product image and description */
main div.product_wrapper div.product.detail {
	margin: 0 10px 0 0;
	width: 80%;
}

main div.product_wrapper div.product.detail div.image {
	float: right;
	margin: 0 0 20px 20px;
}

main div.product_wrapper div.product.detail div.image img {
	max-width: 400px;
}

/* Responsive */
@media screen and (max-width:820px) {
	
	main div.product_wrapper div.product.detail {
		float: none;
	}
	
	main div.product_wrapper div.product.detail div.image {
		margin: 0 0 0 20px;
		text-align: center;
	}
	
	main div.product_wrapper div.product.detail div.image img {
		max-width: 300px;
	}
}
@media screen and (max-width:420px) {
	
	main div.product_wrapper div.product.detail {
		float: none;
		margin: 0 10px 0 0;
		padding: 0;
		width: 80%;
	}
	
	main div.product_wrapper div.product.detail div.image {
		float: none;
		margin: 0 0 0 20px;
		text-align: center;
	}
	
	main div.product_wrapper div.product.detail div.image img {
		max-width: 300px;
	}
}

main div.product_wrapper div.product.detail div.description {
	width: 100%;
	text-align: left;
	overflow-x: initial;
}

main div.product_wrapper div.breadcrumbs {
	margin-bottom: 20px;
	padding: 10px 0 10px 20px;
    font-size: .85em;
	text-align: left;
}

/*** QUICK VIEW: modal <div> ***/

/* Quick view wrapper <div> covers entire browser window */
main div.qv_wrapper {
	display: none; 		/* Hidden by default */
	position: fixed; 	/* Stay in place */
	z-index: 99; 		/* over everything */
	left: 0;
	top: 0;
	width: 100%; 		/* Full width */
	height: 100%; 		/* Full height */
	background-color: rgb(0,0,0); /* Fallback color */
	background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
	/* overflow: auto; /* Enable scroll if needed */
}

/* Quick view product <div> */
main div.qv_wrapper div.qv_product {
	margin: 10% auto;
	padding: 20px;
	width: 70%;
	height: 70%;
	overflow-y: scroll;
	background-color: #fefefe;
	border: 10px solid #f1f2f2;
}

/* Quick view close button */
main div.qv_wrapper div.qv_product button.close {
	color: #FFFFFF;
	float: right;
	font-size: 28px;
	font-weight: bold;
}

main div.qv_wrapper div.qv_product button.close:hover {
	cursor:pointer;
}

main div.qv_wrapper div.qv_product div.qv_image {
	float: right;
	margin: 0;
	padding: 10px 0px 10px 50px;
	width: fit-content;
	text-align: center;
}

main div.qv_wrapper div.qv_product div.qv_image img {
	width: 300px;
}

/* Responsive */
@media screen and (max-width:820px) {
	main div.qv_wrapper div.qv_product div.qv_image {
		margin: 0;
		padding: 10px 0px;
		width: fit-content;
	}

	main div.qv_wrapper div.qv_product div.qv_image img {
		width: 280px;
	}
}
@media screen and (max-width:420px) {

	main div.qv_wrapper div.qv_product div.qv_image {
		float: none;
		margin: 0;
		padding: 10px 0px;
		width: 90%;
		text-align: center;
	}

	main div.qv_wrapper div.qv_product div.qv_image img {
		width: auto;
		max-height: 300px;
	}
}

/*** Product List Search Criteria ***/

main div.search {
	width: 80%;
	margin: 0 auto;
}

main fieldset label,
main div.info label {
	display: inline-block;
	width: 200px;
	margin: 2px 0 8px 0;
	padding: 6px 4px 0 0;
	text-align: right;
	vertical-align: top;
}
	
main div.info div.blank_label {
	display: inline-block;
	width: 200px;
	margin: 2px 0 8px 0;
	padding: 6px 4px 0 0;
}

main fieldset input[type="radio"],
main div.info input[type="radio"] {
	margin: 10px 4px 0 14px;
	padding: 0;
}
	
main fieldset input[type="radio"] + label,
main div.info input[type="radio"] + label {
		display: inline-block;
	width: initial;
	margin: 8px 5px 0 2px;
	padding: 0;
}
	
main fieldset div.navigation,
main div.info div.navigation {
	margin: 12px 0 8px 208px;
}	

/* Responsive */
@media screen and (max-width:420px) {

	main fieldset label,
	main div.info label {
		display: block;
		margin: 2px 0 0 0;
		text-align: left;
		font-weight: 600;
	}
	
	main div.info div.blank_label {
		display: none;
	}

	main fieldset div.navigation,
	main div.info div.navigation {
		margin: 8px 0 8px 0;
	}	
}	

/*** Public Pages ***/

main div.sharpening ul {
	list-style-type: none;
	padding-inline: 0;
}

main div.sharpening ul li {
	padding-bottom: 10px;
}

main div.sharpening ul li span.highlight {
	color: #B1005D;
	font-weight: 600;
}

main#public_template div.sharpening h3 {
	text-align: center;
}

main div.sharpening table {
	width: 50%;
	margin: 0 auto;
}

main div.sharpening table td:first-child {
	width: 60%;
}

main div.sharpening table td:last-child {
	text-align: right;
}
	
/* Responsive */
@media screen and (max-width:420px) {

	main div.sharpening table {
		width: 90%;
	}

	main div.sharpening table td:first-child {
		width: 50%;
	}
}	

/* Left Sidebar */

main#public_template section.left_sidebar {
	float: left;
	margin: 20px 0px 0 10px;
	width: 20%;
}

main#public_template section.left_sidebar h1 {
	text-align: left;
}

main#public_template section.left_sidebar ul.nav {
	list-style: none;
	font-size: 1.1em;
}

main#public_template section.left_sidebar ul.nav li {
	margin: 6px 0;
	padding: 0;
}
	
main#public_template section.left_sidebar ul.nav li.nav-selected a {
	color: #58595B;
}

main#public_template section.content {
	float: right;
	margin: 20px 10% 0 0;
	width: 69%;	
}

/* Contact Form */

main#public_template  form#contact_form label {
	display: block;
	margin: 6px 0 2px 0;
	padding: 6px 4px 0 0;
	width: initial;
	text-align: left;
	font-weight: 600;
}

main#public_template  form#contact_form input[type="text"],
main#public_template  form#contact_form input[type="email"],
main#public_template  form#contact_form textarea {
	padding: 8px 6px 8px 6px;
	color: #58595b;
	background-color: #e6e7e8;
	border-style: none;
}
	
main#public_template  form#contact_form input[type="text"]:focus,
main#public_template  form#contact_form input[type="email"]:focus,
main#public_template  form#contact_form textarea:focus {
	border-style: initial;
}

main#public_template  form#contact_form div.first_name,
main#public_template  form#contact_form div.last_name {
	display: inline-block;
	width: 200px;
}
main#public_template form#contact_form input[type="radio"] {
	margin: 10px 4px 0 14px;
	padding: 0;
}
	
main#public_template form#contact_form input[type="radio"] + label {
	display: inline-block;
	width: initial;
	margin: 8px 5px 0 2px;
	padding: 0;
}

main#public_template form#contact_form input[type="radio"] + label:hover {
	cursor: pointer;
}
	
main#public_template form#contact_form div.navigation {
	margin: 16px 0 8px 4px;
}	


main#public_template div.valid_image img {
	margin: 2px 20px 0 0;
	width: 128px;
	height: 42px;
}
