/*
 * This file contains the CSS properties that are scaled for vertically oriented cell-phone sized 
 * viewports (approximate widths up to 400px).
 ****************************************************************************************************/
@media screen and (max-device-width: 400px) {
	/*Overridden from extensions.css*/
	.rounded {
		border-radius: 2px;
	}
	
	* {
		box-sizing: border-box;
		margin: 0 0 0 0;
		padding: 0 0 0 0;
	}
	
	body {
		cursor: url("../images/beeleft.cur"),pointer;
		overflow-y: scroll;
		overflow-x: hidden;
	}
	
	/*Turn off text decoration for all anchor objects*/
	a {
		text-decoration: none;
	}
	
	button {
		border-radius: 100px 100px 100px 100px;
		background-color: #b99e62;
		border-bottom: 2.25px solid #8d743f;
		border-top: 1.25px solid #d0bd95;
		border-left: 1.25px solid #d0bd95;
		border-right: 3px solid #8d743f;
		font-size: 4vw;
		transition: 0.4s;
		height: 13vw;
		width: 42vw;
	}
	
	button:hover:not(.disabled) {
		/*border-bottom: 2.25px solid #8d743f;
		border-top: 1.25px solid #d0bd95;
		border-left: 1.25px solid #d0bd95;
		border-right: 3px solid #8d743f;
		transition: 0.2s;*/
	}
	
	button:focus {
		outline: none;
		box-shadow: none;
	}
	
	fieldset {
		border: none;
		display: flex;
		flex-direction: column;
		margin: 0 0 8vw 0;
		padding: 0.1vw 0 0.25vw 0.25vw;
	}
	
	legend {
		font-size: 5vw;
		margin: 0 0 0.25vw -0.5vw;
	}
	
	textarea {
		font-size: 5.5vw;
		height: 40vw;
		width: 89vw;
		padding: 1vw 2vw 1vw 2vw;
		scrollbar-width: auto;
		scrollbar-color: #8d743f #b99e62;
	}
	
	select {
		font-size: 5.5vw;
		height: 10vw;
		padding: 0 0 0 1vw;
	}
	
	input[type="text"],input[type="number"],input[type="tel"],input[type="email"] {
		font-size: 5.5vw;
		height: 10vw;
		padding: 1vw 2vw 1vw 2vw;
	}
	
	input[type="checkbox"],input[type="radio"] {
		vertical-align: bottom;
		margin: 0 0.35vw 0 0;
	  	position: relative;
	}
	
	input[type="checkbox"] {
		height: 8vw;
		width: 8vw;
	  	top: 0;
	}
	
	input[type="radio"] {
		height: 7vw;
		width: 7vw;
	  	top: 0;
	}
	
	input[type="text"],input[type="number"],input[type="tel"],input[type="email"],textarea,select {
		background-color: #fef9e7; 
		border-top: 2px solid #8d743f;
		border-left: 2px solid #8d743f;
		border-bottom: 1px solid #d0bd95;
		border-right: 1px solid #d0bd95;
	    border-radius: 4px;
	    box-shadow: none;
	    outline: none;
	    transition: 0.4s;
	}
	
	input[type="text"]:focus,input[type="number"]:focus,input[type="tel"]:focus,input[type="email"]:focus,textarea:focus,select:focus {
		outline: 1px solid #d31717;
		transition: 0.2s;
	}
	
	input[type="checkbox"],input[type="radio"] {
		outline: none;
	  	transition: 0.4s;
	}
	
	/*input[type="checkbox"] {
		accent-color: #fef9e7;
	}*/
	
	input[type="radio"] {
		accent-color: #000000;
	}
	
	input[type="checkbox"]:focus,input[type="radio"]:focus {
		outline: 1px solid red;
		transition: 0.2s;
	}
	
	option {
		font-size: 1vw;
	}
	
	dialog {
		border: 2px solid #000000;
		border-top: 1px solid #404040;
		border-right: 2px solid #000000;
		border-bottom: 2px solid #000000;
		border-left: 1px solid #404040;
	}
	
	td {
		vertical-align: bottom;
	}
	
	header {
		height: 20.2vw;
		width: 100%;
		z-index: 9;
		position: fixed;
		top: 0;
		left: 0;
	}
	
	nav {
		border-top: 0.5vw solid #b99e62;
		border-bottom: 0.5vw solid #b99e62;
		margin: 0 0 0 0;
		height: 13vw;
		width: 100%;
		z-index: 9;
		position: fixed;
		top: 20.2vw;
		left: 0;
	}
	
	main {
		margin: 44vw 0 0 0;
		transition: 0.6s;
		width: 100%;
	}
	
	main.open {
		margin: 44vw 0 0 50vw;
		transition: 0.3s;
	}
	
	footer {
	    margin: 3vw 0 0.1vw 6vw;
		width: 100%;
	}
	
	h1,h2,h3,h4,h5,h6 {
		text-align: left;
	}
	
	h1 {
		font-size: 16vw;
		font-weight: normal;
		letter-spacing: 3px;
	}
	
	h2 {
		font-size: 14vw;
		font-weight: normal;
		letter-spacing: 2px;
	}
	
	h3 {
		font-size: 11vw;
		font-weight: normal;
		letter-spacing: 1.5px;
	}
	
	h4 {
		font-size: 10vw;
		font-weight: normal;
		letter-spacing: 1px;
	}
	
	h5 {
		font-size: 6vw;
		font-weight: normal;
		letter-spacing: 0.75px;
	}
	
	h6 {
		font-size: 4.5vw;
		font-weight: normal;
		letter-spacing: 0.5px;
	}
	
	p,span,ul,a {
		font-size: 5vw;
	}

	div.container {
		display: grid;
		grid-template-columns: 1fr;
		position: relative;
		width: 100%;
		height: 100%;
	}
	
	/*Works in conjunction with NAV Styles for sliding menu effect*/
	/*DO NOT CHANGE WIDTH FROM 96vw!!!*/
	div#main-content {
		grid-row-start: 3;
	    grid-column-start: 1;
		display: flex;
		flex-direction: column;
		margin: 0 0 0 2vw;
		opacity: 1;
		transition: 0.4s;
		width: 96vw;
		min-height: 73vh;
		height: auto;
	}
	
	/*Works in conjunction with NAV Styles for sliding menu effect*/
	div#main-content.open {
		/*margin: 0 0 0 53vw;*/
		opacity: 0.5;
		transition: 0.2s;
	}
	
	input.name {
		/*width: 90vw;*/
		width: 87vw;
	}
	
	input.address {
		width: 87vw;
	}
	
	input.number {
		width: 45vw;
	}
	
	select.state {
		width: 25vw;
	}
	
	select.unselected {
		color: #767676;
	}
	
	p.footer-content {
		font-size: 3.25vw;	
	}
	
	/*
	 * Site Page-Header
	 ****************************************************************************************************/
	div.site-image {
		background-image: url('../images/ccf_logo.png');
		height: 18vw;
		width: 18vw;
		position: absolute;
		top: 1.25vw;
		left: 0.25vw;
	}
	
	div.site-name {
		height: 7vw;
		width: 100%;
		position: absolute;
		top: 1vw;
		left: 16.5vw;
	}
	
	h1.site-name {
		margin: 0 0 0 3vw;
		letter-spacing: 1px;
	}
	
	p.site-name {
		font-size: 2.75vw;
		margin: -3vw 0 0 7.5vw;
		letter-spacing: 8px;
	}
	
	/*
	 * Site Navigation
	 ****************************************************************************************************/
	div.menu-icon {
		position: absolute;
		top: 1.75vw;
		left: 2vw;
		margin: 0.35vw 0 0 0;
	}
	
	div.menu-icon div {
		width: 12vw;
		height: 4px;
		background-color: #d31717;
		margin: 0 0 8px 0;
		/*transition: 0.2s;*/
	}
	
	div.menu-icon:hover div {
		/*background-color: #d31717;
		transition: 0.4s;*/
	}
	
	div.menu-icon.open div.icon-top {
		background-color: #d31717;
		transform: rotate(-45deg) translate(-8px,9px);
	}
	
	div.menu-icon.open div.icon-middle {
		background-color: #d31717;
		opacity: 0;
	}
	
	div.menu-icon.open div.icon-bottom {
		background-color: #d31717;
		transform: rotate(45deg) translate(-8px,-9px);
	}		
	
	span.menu-icon {
		display: none;
		/*letter-spacing: 2px;
		margin: 0.55vw 0 0 0;
		position: absolute;
		top: 0.2vw;
		left: 3.1vw;*/
	}
	
	div#slide-menu {
		position: fixed;
		margin: 0 0 0 -47vw;
		transition: margin 0.6s;
		top: 47vw;
		left: 0;
	}
	
	div#slide-menu.open {
		margin: 0 0 0 1.25vw;
		transition: margin 0.4s;
	}
	
	ul.slide-menu {
		list-style: none;
		padding: 0 0 0 0;
		margin: 0 0 0 0;
		width: 100%;
	}
	
	ul.slide-menu li {
		background-color: #fef9e7;
		border: 1px solid #8d743f;
		border-radius: 4px;
		margin: 0 0 3px 0;
		text-align: left;
		width: 100%;
	}
	
	a.slide-menu {
		font-size: 10vw;
		margin: 0.25vw 5vw 0.25vw 0.75vw;
	}
	
	/*
	 * Site Filter | Search
	 ****************************************************************************************************/
	div.controller {
		align-self: auto;
		grid-row-start: 2;
		grid-column-start: 1;
		margin: 0 0 0 2vw;
		opacity: 1;
		transition: 0.4s;
		width: 96vw
	}
	
	div.controller.open {
		/*margin: 0.25vw 0.65vw 0 80vw;*/
		opacity: 0.5;
		transition: 0.2s;
	}
	
	div.filter {
		max-height: 0;
		overflow: hidden;
		transition: 0.4s ease-out;
	}
	
	div.filter.show {
		max-height: 500vw;
		transition: 0.2s ease-in;
	}
	
	a.show-filter {
		display: initial;
		font-size: 6vw;
		align-self: auto;
		grid-row-start: 1;
		grid-column-start: 1;
		margin: 0 0 4vw 2vw;
	}
	
	a.show-filter::after {
		content: "Show Filters";
	}
	
	a.show-filter.show::after {
		content: "Hide Filters";
	}
	
	span.plus-twisty {
		display: inline-block;
		font-size: 9vw;
		height: 9vw;
		line-height: 9vw;
		padding: 0.75vw 0 0 0;
		text-align: center;
		transition: 0.6s;
		vertical-align: bottom;
		width: 9vw;
	}
	
	span.plus-twisty.rotate {
		transform: rotate(-45deg);
		transform-origin: 50% 50%;
		transition: 0.3s;
	}

	fieldset.filter {
		padding: 0.1vw 0 0.25vw 0.25vw;
		margin: 0.5vw 0 0 4.5vw;
	}
	
	details.filter fieldset.filter {
		margin: 0 0 0 0.5vw;
	}
	
	label.filter {
		display: inline-block;
		font-size: 5.5vw;
		margin: 1vw 0 2vw 0;
	}
	
	label.filter.select-container {
		display: inline-block;
		font-size: 5.5vw;
		margin: 0.25vw 0 0 12.5vw;
	}
	
	span.filter {
		display: none;
		/*letter-spacing: 2px;
		margin: 0.6vw 0 0 0;
		position: absolute;
		top: 0.2vw;
		right: 21.5vw;*/
	}
	
	input[type="text"].filter {
		background-color: #b99e62;
	    float: right;
		width: 92%;
		position: absolute;
		top: 12.5vw;
		left: 1.25vw;
	}
	
	div.filter-icon {
		display: block;
		background-image: url("../images/search.barnred.png");
		height: 7vw;
		width: 7vw;
		position: absolute;
		top: 14vw;
		right: 9vw;
	}
	
	select.filter {
		margin: 0.5vw 0 0 0;
		width: 90%;
	}
	
	details.filter input.filter[type="checkbox"] {
		margin: 0 2vw -0.5vw 5vw;
	}
	
	details.filter {
		margin: 0.5vw 0 0.5vw 11.75vw;
		padding: 0 1vw 0 0;
	}
	
	summary.filter {
		font-size: 5.5vw;
		list-style-position: outside;
		margin: 0 0 1vw 4.5vw;
		padding: 0 0 0 1vw;
		transition: 0.4s;
	}
	
	summary.filter.open {
		color: #893d3d;
		transition: 0.2s;
	}
	
	div.filter-reset {
		margin: 0.75vw 0 0 0;
		text-align: center;
		width: 100%;
	}
	
	button.filter-reset {
		content: url('../images/filter.reset.barnred.png');
		margin: 4vw 0 0 0;
	}
	
	button.filter-reset:hover img.filter-reset {
		/*content: url('../images/filter.reset.red.png');*/
	}
	
	span.filter-reset {
		font-weight: bold;
		margin: 0 0 0 0.25vw;
		text-transform: uppercase;
	}
	
	img.filter-reset {
		content: url('../images/filter.reset.barnred.png');
		margin: 0.25vw 0 0 0;
		vertical-align: top;
		width: 5vw;
	}
	
	/*
	 * Home Page (default.php)
	 ****************************************************************************************************/
	div.slide-button-container {
		display: inline-block;
		height: 50%;
		margin: 0 0 0.25vw 0;
		width: 5vw;
		position: relative;
	}
	
	div.slide-button-container:last-child {
		display: none;
	}
	
	button[class^="slide-"] {
		display: none;
		/*position: absolute;
		top: 75%;
		transform: translateY(-50%);
		height: 4.25vw;
		width: 4.25vw;*/
	}
	
	/*DO NOT REMOVE*/
	/*These buttons are not displayed on phone or tablet sized viewports - code left here for reference*/
	/*button.slide-left {
		left: 10%;
	}
	
	button.slide-right {
		right: 10%;
	}
	
	img[class^="slide-"] {
		width: 4vw;
	}
	
	img.slide-left {
		content: url("../images/bee.left.dotted.black.png");
	}
	
	img.slide-right {
		content: url("../images/bee.right.dotted.black.png");
	}*/
	
	div.product-group {
		flex: 1;
		margin: 0.1vw 0 0 0;
	}
	
	div.product-viewer {
		display: inline-block;
		margin: 0 0 0.25vw 0;
		padding: 0 0.05vw 0 0.05vw;
		overflow-x: visible;
		overflow-y: hidden;
		scrollbar-width: none;
		text-align: left;
		height: auto;
		width: 90.25vw;
		vertical-align: top;
	}
	
	div.scrollable-viewer {
		height: 58vw;
		overflow-x: scroll;
		/*scrollbar-width: none;*/
		scrollbar-width: auto;
		scrollbar-color: #8d743f #b99e62;
		scroll-snap-type: x mandatory;
		scroll-snap-stop: always;
		scroll-snap-align: center;
		white-space: nowrap;
		width: 90vw;
	}
	
	/*div.scrollable-viewer:hover {
		scrollbar-width: auto;
		scrollbar-color: #8d743f #b99e62;
	}*/
	
	h3.product-group,h5.product-group {
		margin: 0 0 0.25vw 4.25vw;
	}
	
	/*
	 *About Page (about.php)
	 ****************************************************************************************************/
	section.text-content {
		margin: 0.1vw 0 0.25vw 4.25vw;
	}
	
	div.text-content {
		margin: 0.25vw 0 0.25vw 0.8vw;
		padding: 0 0 0 0;;
		height: auto;
		width: 99%
	}
	
	p.text-content {
		font-size: 5.5vw;
		width: 98%;
	}
	
	img.gallery {
		position: relative;
		/*top: 1vw;*/
		left: 5%;
		width: 80vw;
		transition: 0.8s;
	}
	
	img.gallery.open {
		left: 64vw;
		transition: 0.4s;
	}
	
	/*
	 * Contact Page (contact.php)
	 ****************************************************************************************************/
	div.contact {
		margin: 8vw 0 0 0.5vw;
	}
	
	/*label.contact {
		display: inline-block;
		font-size: 4.5vw;
		margin: 0.3vw 0 0 0;
	}*/
	
	button.contact-send {
		margin: 2vw 0 0 0;
		position: relative;
		left: 53.5%;
		top: 0;
	}
	
	button.contact-send:hover img.contact-send {
		/*content: url('../images/contact.send.red.png');*/
	}
	
	span.contact-send {
		font-weight: bold;
		margin: 0 0 0 0;
	}
	
	img.contact-send {
		content: url('../images/contact.send.barnred.png');
		margin: 1vw 3vw 0 0;
		vertical-align: top;
		width: 5vw;
	}
	
	input[type="text"].contact,input[type="email"].contact,input[type="tel"].contact,textarea.contact {	
	    /*margin: 0 0.5vw 2vw 0;*/
	    margin: 1vw 0 0 0;
	}
	
	/*
	 * Modal Styles (dialog)
	 ****************************************************************************************************/
	dialog.confirm {
		background-image: url("../images/postcard.png");
		margin: 0 0 0 0;
	 	left: 8%;
	 	top: 5%;
	 	height: 54.65vw;
	 	width: 86vw;
	 	z-index: 9;
	}
	
	p.confirm {
		display: inline-block;
		font-size: 2.5vw;
		line-height: 2.75vw;
		position: absolute;
		top: 17vw;
		left: 2.75vw;
		height: 43%;
		width: 43%;
	}
	
	p.addressee {
		display: inline-block;
		font-size: 2.5vw;
		position: absolute;
		top: 20.75vw;
		left: 44vw;
		height: 43%;
		width: 43%;
	}
	
	button.confirm {
		position: absolute;
		top: 82%;
		left: 38.5%;
		height: 9.5vw;
		width: 19vw;
	}

	span.confirm.sale-id {
		display: inline-block;
		font-size: 2.5vw;
		padding: 1vw 0 1vw 4vw;
	}	
	
	span.confirm.signature {
		display: inline-block;
		font-size: 7vw;
		padding: 2vw 0 0 2vw;
	}
	
	dialog#cart-confirmation {
		display: flex; 
		margin: 5% auto 0 auto;
		opacity: 0; 
		padding: 0.25vw 0.5vw 0.25vw 0.5vw; 
		z-index: 5;
		position: fixed;
		
	}
	
	p#cart-confirmation-text {
		font-size: 4vw;
		max-width: 85vw;
	}
	
	/*
	 * Product Card
	 * This section is divided into 4 blocks:
	 *   1. Generic styles applicable to all product cards regardless of size
	 *   2. Small Product Cards
	 *   3. Medium Product Cards
	 *   4. Large Product Cards
	 ****************************************************************************************************/
	div.product-card {
		position: relative;
		display: inline-block;
		margin: 0 2vw 0.25vw 0;
	}
		
	div.product-image {
		transition: background-size 0.8s;
	}

	div.product-image:hover:not(div.no-image) {
		background-size: 150%;
		transition: background-size 0.4s;
	}
	
	div.add-to-cart {
		width: 50%;
		float: right;
	}
	
	div.add-to-cart div {
		margin: 0 0 0.5vw 0;
		text-align: center;
	}
	
	div.add-to-cart div:last-child {
		margin: 0 0 0 0;
	}
	
	p.product-brand {
		letter-spacing: 3px;
		text-transform: uppercase;
		width: 100%;
	}
	
	span.sale {
		font-size: 3vw;
		margin: 0 0 0 1.5vw;
	}
	
	span.unit-of-measure::before {
		content: " /";
	}

	label.order-quantity {
		display: block;
		font-size: 3vw;
	}
	
	ul.flagpole {
		display: flex;
		flex-direction: column;
		list-style: none;
	}
	
	ul.flagpole li:first-child div {
		border-top-left-radius: 2px;
	}
	
	li div.flag {
		position: relative;
		height: 0;
		width: 17vw;
		margin: 0 0 1vw 0;
		border-style: solid;
		/*border-width: 2.25vw 6vw 2.25vw 4vw;*/
		border-width: 2vw 4vw 2vw 4vw;
	}
	
	li div.flag span {
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.75vw;
		font-weight: bold;
		margin: -1.1vw 0 0 -3.25vw;
	}
	
	div.flag.shopping-cart {
		display: inline-block;
		position: absolute;
		bottom: 0;
		left: 0;
		height: 0;
		width: 10vw;
		margin: 0 0 0 0;
		border-style: solid;
		border-width: 1.5vw 3.5vw 1.5vw 3.5vw;
		border-bottom-left-radius: 2px;
		vertical-align: bottom;
	}
	
	div.flag.shopping-cart span {
		position: absolute;
		top: 0;
		left: 0;
		font-size: 2.5vw;
		font-weight: bold;
		margin: -1.5vw 0 0 -3vw;
	}
	
	/*Dodger Blue = #1E90FF*/
	div.flag.best-seller {
		border-color: #1E90FF transparent #1E90FF #1E90FF;
	}
	
	/*Medium Sea Green = #3CB371*/
	div.flag.flash-sale {
		border-color: #3CB371 transparent #3CB371 #3CB371;
	}
	
	/*Tomato = #FF6347*/
	div.flag.out-of-stock {
		border-color: #FF6347 transparent #FF6347 #FF6347;
	}
	
	/*Orange = #FFA500*/
	div.flag.limited-stock {
		border-color: #FFA500 transparent #FFA500 #FFA500;
	}


	/**
	 * Small Product Card
	 **************************************************/
 	div.product-group.small {
		flex: 1;
		margin: 0 0 0 1vw;
		z-index: 1;
	}
	
	div.scrollable-viewer.small {
		height: 29vw;
		width: 85vw;
	}

	div.slide-button-container.small {
		display: inline-block;
		height: 9vw;
		margin: 0 0 0.25vw 0;
		width: 5vw;
		position: relative;
	}

	div.product-card.small {
	 	margin: 0 1vw 0 0;
		padding: 0 0 0 0;
		height: 28vw;
		width: 28vw;
		vertical-align: top;
	}
	
	div.product-image.small {
		height: 100%;
		width: 100%;
		transition: 0.4s;
	}
	
	div.product-name-bar.small {
		display: none;
		/*background-color: #ffffff;
		border-bottom-left-radius: 3px;
		border-bottom-right-radius: 3px;
		bottom: 0;
		height: 2vw;
		margin:  0 1px 1px 1px;
		opacity: 0.4;
		position: absolute;
		width: 98.75%;*/
	}
	 
	span.product-name.small {
		display: none;
		/*bottom: 0;
		display: inline-block;
		line-height: 1vw;
	 	font-size: 1vw;
	 	height: 2vw;
	 	opacity: 1.0;
	 	position: absolute;
	 	text-align: center;
	 	width: 100%;
	 	white-space: normal;*/
	}
	
	div.add-to-cart.small {
		display: none;
		/*background-image: url('/images/shopping-cart-full.barnred.png');
		background-size: 90%;
		border-bottom-right-radius: 4px;
		bottom: 0;
		height: 1vw;
		position: absolute;
		right: 0.1vw;
		padding: 0 0 1.05vw 0.2vw;
		transition: 0.4s;
		vertical-align: bottom;
		width: 1vw;*/
	}
	
	div.add-to-cart.small:hover {
		/*background-image: url('/images/shopping-cart-full.red.png');
		color: #fef9e7;
		transition: 0.2s;*/
	}
	

	/**
	 * Medium Product Card
	 **************************************************/	
	div.product-card.medium {
		height: 55vw;
		padding: 0.25vw 0.25vw 0.25vw 0.25vw;
		width: 28vw;
		white-space: normal;
	}
	
	div.product-card.medium:last-child {
		margin: 0 0 0.25vw 0;
	}
	
	div.product-card.medium:not(div.scrollable-viewer div.product-card.medium) {
		margin: 0 2vw 2vw 0;
	}

	div.product-image.medium {
		height: 50%;
		width: 100%;
	}
	
	div.product-summary.medium {
		height: 50%;
		width: 100%;
	}
	
	div.product-summary.medium [class^="product-"] {
		text-align: center;
	}
	
	/*H5 on medium display only*/
	h5.product-name {
		height: 13vw;
		letter-spacing: 0.1px;
		line-height: 4.75vw;
		width: 100%;
	}
		
	p.product-brand.medium {
		display: none;
		/*font-size: 0.55vw;
		margin: 0.75vw 0 0 0;*/
	}

	p.product-container.medium {
		display: none;
		/*margin: 0.5vw 0 0 0;*/
	}
	
	p.product-price.medium {
		line-height: 3vw;
		margin: 2vw 0 0.5vw 0;
	}

	span.unit-of-measure.medium {
		display: block;
		font-size: 2.5vw;
		margin: 0 0 0 0.25vw;
	}
	
	span.product-price.medium {
		font-size: 3vw;
	}
									
	a.add-to-cart.medium {
		font-size: 3.25vw;
		margin: 0 0 0 2vw;
		transition: 0.4s;
	}
	
	a.add-to-cart.medium::before {
		content: "➠";
	}
	
	a.add-to-cart.medium:hover:not(.disabled-text) {
		margin: 0 0 0 2vw;
		transition: 0.2s;
	}

	ul.flagpole.medium {
		position: absolute;
		top: 0;
		left: 0;
	}


	/**
	 * Large Product Card
	 **************************************************/
	div.product-card.large {
		display: grid;
		border: none;
		height: auto;
		width: 100%;
		min-height: 75%;
	}
	
	/*Needed to allow contined DIVs to be positioned in grid layout*/
	/*div.product-summary.large div {
		display: grid;
	}*/

	h3.product-name.large {
		height: auto;
		letter-spacing: 0.1px;
		line-height: 9.5vw;
		margin: 2vw 0 1vw 0;
		width: 100%;
	}
	
	div.product-image.large {
		display: inline-block;
		margin: 10vw 0 0 0;
		height: 45vw;
		width: 45vw;
		vertical-align: top;
	}
	
	div.product-summary.large {
		display: inline-block;
		padding: 0 1vw 0 1vw;
		margin: -0.25vw 0 0 0;
		width: 46vw;
		position: relative;
	}
	
	div.add-to-cart-container.large {
		display: inline-block;
		height: 23vw;
		position: absolute;
		top: 55vw;
		right: -36vw;
		vertical-align: bottom;
		width: 45vw;
	}
	
	div.add-to-cart.large {
		position: absolute;
		left: 20%;
		top: 0;
		width: 100%;
	}
	
	p.product-id {
		font-size: 4vw;
	}
	
	p.product-id.large::before {
		content: "Product# ";
	}
	
	p.product-brand.large {
		font-size: 3.5vw;
		margin: 0.25vw 0 0 0;
		width: 150%
	}
	
	div.product-description.large {
		display: inline-block;
		margin: 1vw 0 0 0;
		min-height: 85.25vw;
		min-width: 45vw;
		height: auto;
		width: 100%;
	}
	
	div.product-description.large p {
		font-size: 3.5vw;
		margin: 0 0 0 0;
	}
		
	div.product-description.large p:last-child {
		margin: 2vw 0 1vw 0;
	}
	
	div.product-description.large ul {
		font-size: 3vw;
		list-style: none;
		margin: 0 0 2vw 1vw;
	}
	
	div.product-description ul li::before {
		content: "✭ ";
	}

	/*p.product-container.large {
		font-size: 3.5vw;
	}*/

	p.product-price.large span:not(span.unit-of-measure) {
		font-size: 3.5vw;
	}
		
	span.unit-of-measure.large {
		font-size: 3vw;
		margin: 0 0 0 0.25vw;
	}
	
	button.add-to-cart.large {
		margin: 4vw 0 0 0;
	}

	/*
	 * Cart & Checkout (cart.php)
	 ****************************************************************************************************/
	div.shopping-cart-icon {
		background-image: url("../images/shopping-cart-empty.barnred.png");
		display: inline-block;
		height: 100%;
		text-align: center;
		width: 10vw;
		position: absolute;
		top: 0;
		right: 8vw;
	}
	
	div.shopping-cart-icon:hover {
		/*background-image: url("../images/shopping-cart-empty.red.png");*/
	}
	
	div.shopping-cart-icon.full {
		background-image: url("../images/shopping-cart-full.red.png");
	}
	
	div.shopping-cart-icon.full:hover {
		/*background-image: url("../images/shopping-cart-full.red.png");*/
	}
	
	p.shopping-cart-icon {
		margin: 24% 0 0 24%;
		text-align: center;
		width: 66.667%
	}
	
	div.shopping-cart-image {
		height: 16vw;
		width: 16vw;
	}
	
	p.shopping-cart-id {
		margin: 0.4vw 0 0 0;
		font-size: 2.75vw;
	}
	
	p.shopping-cart-id::before {
		content: "Product# ";
	}
	
	p.shopping-cart-name {
		line-height: 5.25vw;
		margin: 0 0 0 0;
		font-size: 7vw;
	}
	
	span.shopping-cart-price {
		position: absolute;
		top: 1.5vw;
		left: 0;
		font-size: 3.5vw;
		margin: 0 0 0.5vw 0;
	}
	
	span.shopping-cart-price::after {
		content: " ×";
	}
	
	span.shopping-cart-sale {
		font-size: 1.25vw;
		margin: 0 0 0 0;
	}
	
	span.shopping-cart-quantity {
		border: 1px solid #505050;
		border-radius: 2px;
		display: inline-block;
		font-size: 6vw;
		margin: 0 0 0 -7vw;
		padding: 0.25vw 01vw 0.25vw 1vw;
		width: 11vw;
	}
	
	p.shopping-cart-subtotal {
		font-size: 4vw;
		margin: 0 0 0 0;
	}
	
	p.subtotal-value {
		font-size: 4vw;
		margin: 0 1.5vw 0 0;
	}
	
	p.subtotal-name {
		font-size: 4vw;
		margin: 0 0 0.15vw 0;
	}
	
	table.shopping-cart {
		border-collapse:collapse; 
  		/*border-spacing: 0.5vw 2vw;*/
		table-layout: fixed;
		width: 100%;
	}
			
	tr.shopping-cart {
		border-bottom: 1px solid #505050;
	}
	
	tbody tr.shopping-cart {
		height: 20vw;
	}

	tr.shopping-cart td {
		position: relative;
		vertical-align: middle;
	}
	
	tbody tr.shopping-cart td:first-child {
		width: 17vw;
	}

	tbody tr.shopping-cart td:nth-child(2) {
		width: 35vw;
	}
	/*Price + Quantity*/
	tbody tr.shopping-cart td:nth-child(3) {
		padding: 2vw 0 0 0;
		width: 18vw;
		text-align: center;
	}

	tbody tr.shopping-cart td:nth-child(4) {
		width: 16vw;
		padding: 3vw 1vw 0 0;
		text-align: right;
	}
		
	tfoot tr.shopping-cart {
		height: 10vw;
	}
	
	input.shopping-cart-quantity {
		margin: 0 0 0.25vw 0;
		padding: 0 1vw 0 1vw;
		width: 9vw;
	}
		
	button.shopping-cart-remove {
		height: 7vw;
		line-height: 6.25vw;
		margin: 0 0 1.25vw 1.75vw;
		vertical-align: bottom;
		width: 7vw;
	}
	
	button.shopping-cart-remove:before {
		font-size: 7vw;
		content: "×";
	}
	
	label.delivery {
		display: inline-block;
		font-size: 4.5vw;
		margin: 3vw 0 3vw 0;
	}
	
	input[type^="checkbox"].delivery {
		margin: 0 4vw -1vw 0;
		vertical-align: bottom;
	}
	
	input[type^="radio"].delivery {
		margin: 0 5vw -0.75vw 0;
		vertical-align: bottom;
	}
	
	input.delivery,select.delivery {
		margin: 1vw 0 0 1vw;
	}
	
	button.checkout {
		margin: 8vw 0 0 54%;
	}
	
	button.delivery {
		margin: 8vw 0 0 54%;
	}
	
	input + span,select + span,textarea + span {
		position: relative;
	}

	input + span::before,select + span::before {
		position: absolute;
		right: 0.5vw;
		bottom: 0;
	}
		
	select + span::before {
		position: absolute;
		right: 4vw;
		bottom: 0;
	}
	
	textarea + span::before {
		position: absolute;
		right: 0.5vw;
		bottom: 1vw;
	}
	
	input:invalid:focus,select:invalid:focus,textarea:invalid:focus {
		border: 1px solid red;
	}
	
	input:invalid + span::before,select:invalid + span::before,textarea:invalid + span::before {
		content: "✖";
		color: red;
	}
	
	input:valid + span::before,select:valid + span::before,textarea:valid + span::before {
		content: "✓";
		color: green;
	}
	
	label.optional {
		font-size: 3.5vw;
	}
	
	div.confirm {
		display: none;
		margin: 0.25vw 0 0 0.8vw;
		opacity: 0;
		padding: 0 0 0 0;
		height: auto;
		transition: 0.4s;
		width: 99%
	}
	
	div.confirm.show {
		display: block;
		opacity: 1;
		transition: 0.2s;
	}
	
	div.delivery {
		display: none;
		margin: 0.25vw 0 0 0.8vw;
		opacity: 0;
		padding: 0 0 0 0;
		height: auto;
		transition: 0.4s;
		width: 99%
	}
	
	div.delivery.show {
		display: block;
		opacity: 1;
		transition: 0.2s;
	}

	div.delivery > button:nth-of-type(2) {
		margin: 1vw 0 0 6.75%;
	}
	
	div.payment {
		display: none;
		margin: 0.25vw 0 0 0.8vw;
		opacity: 0;
		padding: 0 0 0 0;
		height: auto;
		transition: 0.4s;
		width: 99%
	}
	
	div.payment.show {
		display: block;
		opacity: 1;
		transition: 0.2s;
	}

	div.payment button:nth-of-type(2) {
		margin: 1vw 0 0 6.75%;
	}

	div#payment-form {
		width: 100%;
	}
				
	div.payment-status {
		margin: 0 0 1vw 0
	}
			
	div.delivery-method {
		display: flex;
		flex-direction: column;
	}
	
	div.delivery-method :nth-child(2) {
		margin: 0.25vw 0 0 0;
	}
	
	fieldset#ship-to-address.show {
		display: flex;
		height: auto;
		opacity: 1;
		transition: 0.4s;
	}
	
	fieldset#ship-to-address {
		display: none;
		height: 0;
		opacity: 0;
		transition: 0.2s;
	}
}
