
/*
 * This file contains the default CSS properties, many of which are scaled for PC-sized viewports 
 * (approximate widths greater than 1500px).
 ****************************************************************************************************/
* {
	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: 1px solid #b0914f;
	transition: 0.4s;
	height: 2vw;
	width: 6vw;
}

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;
}


button.clicked:not(.disabled) {
	border-bottom: 2.25px solid #ffffff;
	border-top: 1.25px solid #ffffff;
	border-left: 1.25px solid #ffffff;
	border-right: 3px solid #ffffff;
}

fieldset {
	border: none;
	display: flex;
	flex-direction: column;
	margin: 0 0 0.75vw 0;
	padding: 0.1vw 0 0.25vw 0.25vw;
}

legend {
	font-size: 0.75vw;
	margin: 0 0 0.25vw -0.5vw;
}

textarea {
	font-size: 1vw;
	height: 10vw;
	width: 28vw;
	padding: 0.25vw 0.25vw 0.25vw 0.25vw;
	scrollbar-width: auto;
	scrollbar-color: #8d743f #b99e62;
}

select {
	font-size: 1vw;
	height: 1.5vw;
	padding: 0 0 0 0;
}

input[type="text"],input[type="number"],input[type="tel"],input[type="email"] {
	font-size: 1vw;
	height: 1.5vw;
	padding: 0.15vw 0.25vw 0.15vw 0.25vw;
}

input[type="checkbox"],input[type="radio"] {
	vertical-align: bottom;
	margin: 0 0.25vw 0 0;
  	position: relative;
}

input[type="checkbox"] {
	height: 1vw;
	width: 1vw;
  	top: 0;
}

input[type="radio"] {
	height: 0.85vw;
	width: 0.85vw;
  	top: -0.05vw;
}

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 #584928;
	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 #584928;
	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: 10.1vw;
	width: 100%;
	z-index: 9;
	position: fixed;
	top: 0;
	left: 0;
}

nav {
	border-top: 0.25vw solid #b99e62;
	margin: 0 0 0 0;
	height: 2.25vw;
	width: 100%;
	z-index: 9;
	position: fixed;
	top: 10.1vw;
	left: 0;
}

main {
	margin: 12.35vw 0 0 0;
	transition: 0.6s;
	width: 100%;
}

main.open {
	margin: 12.35vw 0 0 9.5vw;
	transition: 0.3s;
}

footer {
    margin: 0 0 0.25vw 6vw;
	width: 100%;
}

h1,h2,h3,h4,h5,h6 {
	text-align: left;
}

h1 {
	font-size: 9vw;
	font-weight: normal;
	letter-spacing: 3px;
}

h2 {
	font-size: 4vw;
	font-weight: normal;
	letter-spacing: 2px;
}

h3 {
	font-size: 3vw;
	font-weight: normal;
	letter-spacing: 1.5px;
}

h4 {
	font-size: 2vw;
	font-weight: normal;
	letter-spacing: 1px;
}

h5 {
	font-size: 1.5vw;
	font-weight: normal;
	letter-spacing: 0.75px;
}

h6 {
	font-size: 1.25vw;
	font-weight: normal;
	letter-spacing: 0.5px;
}

p,span,ul,a {
	font-size: 0.75vw;
}

div.container {
	display: grid;
	grid-template-columns: 1fr;
	position: relative;
	width: 100%;
	height: 100%;
}

/*Works in conjunction with NAV Styles for sliding menu effect*/
div#main-content {
	grid-row-start: 1;
    grid-column-start: 1;
	display: flex;
	flex-direction: column;
	margin: 0 0 0 2vw;
	opacity: 1;
	transition: 0.4s;
	width: 82.5vw;
	min-height: 73vh;
	height: auto;
}

/*Works in conjunction with NAV Styles for sliding menu effect*/
div#main-content.open {
	/*margin: 0 0 0 12vw;*/
	opacity: 0.5;
	transition: 0.2s;
}

input.name {
	width: 13.87vw;
}

input.address {
	width: 28vw;
}

input.number {
	width: 8.5vw;
}

select.state {
	width: 5.15vw;
}

select.unselected {
	color: #767676;
}

p.footer-content {
	font-size: 0.75vw;	
}

/*
 * Site Page-Header
 ****************************************************************************************************/
div.site-image {
	background-image: url('../images/ccf_logo.png');
	height: 9vw;
	width: 9vw;
	position: absolute;
	top: 0.5vw;
	left: 6.5vw;
}

div.site-name {
	height: 7vw;
	width: 70%;
	position: absolute;
	top: 1.5vw;
	left: 17.5vw;
}

h1.site-name {
	margin: -2vw 0 0 0;
	letter-spacing: 8px;
}

p.site-name {
	font-size: 1.25vw;
	margin: -1.85vw 0 0 3.75vw;
	letter-spacing: 30px;
}

/*
 * Site Navigation
 ****************************************************************************************************/
div.menu-icon {
	position: absolute;
	top: 0.15vw;
	left: 0.5vw;
	margin: 0.25vw 0 0 0;
}

div.menu-icon div {
	width: 2vw;
	height: 3px;
	background-color: #893d3d;
	margin: 0 0 7px 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(-7px,7px);
}

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(-7px,-7px);
}		

span.menu-icon {
	letter-spacing: 2px;
	margin: 0.40vw 0 0 0;
	position: absolute;
	top: 0.2vw;
	left: 3.1vw;
}

div#slide-menu {
	position: fixed;
	margin: 0 0 0 -9.5vw;
	transition: margin 0.6s;
	top: 13.3vw;
	left: 0;
}

div#slide-menu.open {
	margin: 0 0 0 0.25vw;
	transition: margin 0.4s;
}

ul.slide-menu {
	list-style: none;
	padding: 0 0 0 0;
	margin: 0 0 0 0;
	width: 10vw;
}

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: 1.5vw;
	margin: 0.25vw 0.75vw 0.25vw 0.75vw;
}

/*
 * Site Filter | Search
 ****************************************************************************************************/
div.controller {
	align-self: flex-start;
	grid-row-start: 1;
	grid-column-start: 2;
	margin: 0 0.65vw 0 0;
	opacity: 1;
	transition: 0.4s;
}

div.controller.open {
	/*margin: 0 0.65vw 0 96vw;*/
	opacity: 0.5;
	transition: 0.2s;
}

a.show-filter {
	display: none;
}

fieldset.filter {
	padding: 0.1vw 0 0.25vw 0.25vw;
	margin: 0.5vw 0 0 0.45vw;
}

details.filter fieldset.filter {
	margin: 0 0 0 0.5vw;
}

label.filter {
	display: inline-block;
	font-size: 0.75vw;
	margin: 0.25vw 0 0 0;
}

label.filter.select-container {
	display: inline-block;
	font-size: 0.75vw;
	margin: 0.25vw 0 0 0.75vw;
}

span.filter {
	letter-spacing: 2px;
	margin: 0.40vw 0 0 0;
	position: absolute;
	top: 0.2vw;
	right: 13.7vw;
}

input[type="text"].filter {
    float: right;
	width: 12.5vw;
	position: absolute;
	top: 0.25vw;;
	right: 0.6vw;
}

div.filter-icon {
	display: none;
	/*background-image: url("../images/search.red.png");
	height: 7vw;
	width: 7vw;
	position: absolute;
	top: 14vw;
	right: 9vw;*/
}

select.filter {
	margin: 0 0 0 0;
	width: 11.5vw;
}

details.filter input.filter[type="checkbox"] {
	margin: 0 0.25vw 0 0.75vw;
}

details.filter {
	margin: 0.5vw 0 0.5vw 0;
	padding: 0 1vw 0 0;
}

summary.filter {
	font-size: 0.75vw;
	list-style-position: outside;
	margin: 0 0 0 1.25vw;
	padding: 0 0 0 0.2vw;
	transition: 0.4s;
}

summary.filter.open {
	color: #d31717;
	transition: 0.2s;
}

div.filter-reset {
	margin: 0.75vw 0 0 0;
	text-align: center;
	width: 100%;
}

button.filter-reset {
	margin: 0.5vw 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 0 0 0vw;
	vertical-align: top;
	width: 0.85vw;
}

/*
 * Home Page (default.php)
 ****************************************************************************************************/
div.slide-button-container {
	display: inline-block;
	height: 60%;
	margin: 0 0 0.25vw 0;
	width: 5vw;
	position: relative;
}

button[class^="slide-"] {
	font-size: 2vw;
	height: 2vw;
	line-height: 0.75vw;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	vertical-align: bottom;
	width: 2vw;
}

button.slide-left {
	right: 0;
}

button.slide-right {
	left: 0;
}

button.slide-left::before {
	content: "🠈";
}

button.slide-right::after {
	content: "🠊";
}

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: 72.25vw;
	vertical-align: top;
}

div.scrollable-viewer {
	height: 21.1vw;
	overflow-x: scroll;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
	scroll-snap-stop: always;
	scroll-snap-align: center;
	white-space: nowrap;
	width: 59.20vw;
}

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 0 0.25vw 0.8vw;
	padding: 0 0.75vw 0.75vw 0;
	height: auto;
	width: 90%
}

p.text-content {
	font-size: 1vw;
	width: 70%;
}

img.gallery {
	position: absolute;
	top: 1vw;
	left: 57vw;
	width: 17vw;
	transition: 0.8s;
}

img.gallery.open {
	left: 58vw;
	transition: 0.4s;
}

/*
 * Contact Page (contact.php)
 ****************************************************************************************************/
div.contact {
	margin: 1vw 0 0 0.5vw;
}

/*label.contact {
	display: inline-block;
	font-size: 0.75vw;
	margin: 0.25vw 0 0 0;
}*/

button.contact-send {
	position: relative;
	left: 32.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.25vw;
}

img.contact-send {
	content: url('../images/contact.send.barnred.png');
	margin: 0.15vw 0 0 0.25vw;
	vertical-align: top;
	width: 0.75vw;
}

input[type="text"].contact,input[type="email"].contact,input[type="tel"].contact,textarea.contact {	
    margin: 0 0.25vw 0.25vw 0;
}

/*
 * Modal Styles (dialog)
 ****************************************************************************************************/
dialog.confirm {
	background-image: url("../images/postcard.png");
	margin: 0 0 0 0;
 	left: 31%;
 	top: 15%;
 	height: 15.75vw;
 	width: 25vw;
 	z-index: 9;
}

p.confirm {
	display: inline-block;
	font-size: 0.85vw;
	line-height: 0.9vw;
	position: absolute;
	top: 4.5vw;
	left: 0.75vw;
	height: 43%;
	width: 43%;
}

p.addressee {
	display: inline-block;
	font-size: 0.85vw;
	position: absolute;
	top: 6vw;
	left: 13vw;
	height: 43%;
	width: 43%;
}

button.confirm {
	position: absolute;
	top: 88%;
	left: 43%;
	height: 1.5vw;
	width: 3vw;
}

span.confirm.sale-id {
	display: inline-block;
	font-size: 0.85vw;
	padding: 0.25vw 0 0.25vw 4vw;
}

span.confirm.signature {
	display: inline-block;
	font-size: 1.75vw;
	padding: 0.5vw 0 0 1.5vw;
}

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: 1vw;
	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 1vw 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 {
	margin: 0 0 0 0.5vw;
}

span.unit-of-measure::before {
	content: " /";
}

label.order-quantity {
	display: block;
	font-size: 1vw;
}

ul.flagpole {
	display: flex;
	flex-direction: column;
	list-style: none;
}

ul.flagpole li:first-child div {
	border-top-left-radius: 4px;
}

li div.flag {
	position: relative;
	height: 0;
	width: 5.5vw;
	margin: 0 0 0.25vw 0;
	border-style: solid;
	border-width: 0.55vw 1.0vw 0.55vw 1.0vw;
}

li div.flag span {
	position: absolute;
	top: 0;
	left: 0;
	font-size: 0.5vw;
	font-weight: bold;
	margin: -0.25vw 0 0 -0.75vw;
}

div.flag.shopping-cart {
	display: inline-block;
	position: absolute;
	bottom: 0;
	left: 0;
	height: 0;
	width: 2.75vw;
	margin: 0 0 0.1vw 0;
	border-style: solid;
	border-width: 0.55vw 1.0vw 0.55vw 1.0vw;
	border-bottom-left-radius: 4px;
	vertical-align: bottom;
}

div.flag.shopping-cart span {
	position: absolute;
	top: 0;
	left: 0;
	font-size: 0.5vw;
	font-weight: bold;
	margin: -0.25vw 0 0 -0.75vw;
}

/*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: -1.5vw 0 0 0.85vw;
	z-index: 1;
}

div.scrollable-viewer.small {
	height: 10vw;
	width: 58.35vw;
}

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 0.85vw 0 0;
	padding: 0 0 0 0;
	height: 9vw;
	width: 9vw;
	vertical-align: top;
}
 
div.product-image.small {
	height: 100%;
	width: 100%;
	transition: 0.4s;
}

div.product-name-bar.small {
	background-color: #ffffff;
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
	bottom: 0;
	height: 2vw;
	margin:  0 1px 1px 1px;
	opacity: 0.5;
	position: absolute;
	width: 98.75%;
}
 
span.product-name.small {
	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 {
	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: 20vw;
	padding: 0.25vw 0.25vw 0.25vw 0.25vw;
	width: 11vw;
	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 1vw 1vw 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: 2vw;
	line-height: 1.25vw;
	width: 100%;
}
	
p.product-brand.medium {
	font-size: 0.5vw;
	margin: 0.75vw 0 0 0;
}

p.product-container.medium {
	margin: 0.5vw 0 0 0;
}

p.product-price.medium {
	margin: 0.5vw 0 1vw 0;
}

span.unit-of-measure.medium {
	font-size: 0.6vw;
	margin: 0 0 0 0.25vw;
}
									
a.add-to-cart.medium {
	font-size: 0.75vw;
	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 4.5vw;
	transition: 0.2s;
}

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


/**
 * Large Product Card
 **************************************************/
div.product-card.large {
	border: none;
	height: 100%;
	width: 100%;
}

/*H3 on large display only*/
h3.product-name.large {
	/*height: 13vw;
	letter-spacing: 0.1px;
	width: 100%;*/
}

div.product-image.large {
	display: inline-block;
	height: 21.5vw;
	width: 21.5vw;
	vertical-align: top;
}

div.product-summary.large {
	display: inline-block;
	margin: 0 0 0 0;
	width: 40vw;  
}

div.add-to-cart-container.large {
	display: inline-block;
	margin: 1vw 0.25vw 0 0;
	vertical-align: top;
	width: 7.8vw;
}

div.add-to-cart.large {
	width: 100%;
}

p.product-id {
	font-size: 0.75vw;
}

p.product-id.large::before {
	content: "Product# ";
}

p.product-brand.large {
	font-size: 0.75vw;
	margin: 0.25vw 0 0 0;
}

div.product-description.large {
	display: inline-block;
	margin: 1vw 0.25vw 0 0;
	min-height: 17.5vw;
	height: auto;
	width: 79%;
}

div.product-description.large p {
	font-size: 1vw;
	margin: 0 0 1vw 0;
}

div.product-description.large p:last-child {
	margin: 0.5vw 0 1.5vw 0;
}

div.product-description.large ul {
	font-size: 0.85vw;
	list-style: none;
	margin: 0 0 1vw 1vw;
}

div.product-description.large ul li::before {
	content: "✭ ";
}

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

p.product-price.large span:not(span.unit-of-measure) {
	font-size: 1vw;
}
		
span.unit-of-measure.large {
	font-size: 0.6vw;
	margin: 0 0 0 0.25vw;
}

button.add-to-cart.large {
	margin: 0 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: 1.8vw;
	position: absolute;
	top: 0;
	right: 28vw;
}

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.barnred.png");
}

div.shopping-cart-icon.full:hover {
	background-image: url("../images/shopping-cart-full.red.png");
}

p.shopping-cart-icon {
	margin: 25% 0 0 24%;
	text-align: center;
	width: 66.667%
}

div.shopping-cart-image {
	height: 6vw;
	width: 6vw;
}

p.shopping-cart-id {
	margin: 0.4vw 0 0 0;
	font-size: 1vw;
}

p.shopping-cart-id::before {
	content: "Product# ";
}

p.shopping-cart-name {
	line-height: normal;
	margin: -0.4vw 0 0 0;
	font-size: 2.25vw;
}

span.shopping-cart-price {
	font-size: 0.85vw;
	margin: 0 0.25vw 0.5vw 0;
}

span.shopping-cart-price::after {
	content: " ×";
}

span.shopping-cart-sale {
	font-size: 0.75vw;
	margin: 0 0.5vw 0 0;
}

span.shopping-cart-quantity {
	border: 1px solid #505050;
	border-radius: 2px;
	display: inline-block;
	font-size: 1vw;
	margin: 0 0 0 0;
	padding: 0.1vw 0.25vw 0.1vw 0.25vw;
	width: 3vw;
}

p.shopping-cart-subtotal {
	font-size: 1vw;
	margin: 0 0 0.4vw 0;
}

p.subtotal-value {
	font-size: 1vw;
	margin: 0 1vw 0 0;
}

p.subtotal-name {
	font-size: 0.75vw;
	margin: 0 0 0 0;
}

table.shopping-cart {
	border-collapse: collapse; 
 	/*border-spacing: 0.5vw 0.25vw;*/
	table-layout: fixed;
	width: 86%;
}

tr.shopping-cart {
	border-bottom: 1px solid #505050;
}

tbody tr.shopping-cart {
	height: 7vw;
}	

tr.shopping-cart td {
	position: relative;
	vertical-align: middle;
}

tbody tr.shopping-cart td:first-child {
	width: 3.5vw;
}

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

tbody tr.shopping-cart td:nth-child(4) {
	width: 5vw;
	padding: 2vw 1vw 0 0;
	text-align: right;
}

tfoot tr.shopping-cart {
	height: 3.5vw;
}

input.shopping-cart-quantity {
	margin: 0 0 0.25vw 0;
	width: 3vw;
}

button.shopping-cart-remove {
	height: 1.5vw;
	margin: 0 0 0.25vw 1vw;
	vertical-align: bottom;
	width: 1.5vw;
}

button.shopping-cart-remove:before {
	font-size: 1.25vw;
	content: "×";
}

label.delivery {
	display: inline-block;
	font-size: 1vw;
	margin: 0 0 0.25vw 0;
}

input[type^="checkbox"].delivery {
	margin: 0 0.5vw 0.1vw 0;
	vertical-align: bottom;
}

input[type^="radio"].delivery {
	margin: 0 0.5vw 0.1vw 0;
	vertical-align: bottom;
}

input.delivery,select.delivery {
	margin: 0 0.25vw 0.5vw 0;
}

button.checkout {
	margin: 0 0 0 70%;
}

button.delivery {
	margin: 1vw 0 0 77.5%;
}

input + span,select + span,textarea + span {
	position: relative;
}

input + span::before {
	position: absolute;
	right: 0.5vw;
	bottom: 0;
}

select + span::before {
	position: absolute;
	right: 1.25vw;
	bottom: 0;
}

textarea + span::before {
	position: absolute;
	right: 0.55vw;
	bottom: 0.55vw;
}

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: 0.65vw;
}

div.confirm {
	height: 0;
	margin: 0 0 0 0.8vw;
	opacity: 0;
	padding: 0 0.75vw 0 0;
	transition: 0.4s;
	visibility: hidden;
	width: 90%
}

div.confirm.show {
	height: auto;
	opacity: 1;
	transition: 0.2s;
	visibility: visible;
}

div.delivery {
	height: 0;
	margin: 0 0 0 0.8vw;
	opacity: 0;
	padding: 0 0.75vw 0 0;
	transition: 0.4s;
	visibility: hidden;
	width: 90%;
}

div.delivery.show {
	height: auto;
	opacity: 1;
	transition: 0.2s;
	visibility: visible;
}

div.delivery > button:nth-of-type(2) {
	margin: 1vw 0 0 24.5%;
}

div.payment {
	height: 0;
	margin: 0 0 0 0.8vw;
	opacity: 0;
	padding: 0 0.75vw 0 0;
	text-align: left;
	transition: 0.4s;
	visibility: hidden;
	width: 90%
}

div.payment.show {
	height: auto;
	opacity: 1;
	transition: 0.2s;
	visibility: visible;
}

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

div#payment-form {
	width: 25.5%;
}

div.payment-status {
	margin: 0 0 0.5vw 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;
}
