/*
 *  ╔═╗╦═╗╔═╗╔╦╗╦ ╦╔═╗╔╦╗  ╔═╗╔═╗╦═╗╦╔═╗╔═╗  ╔═╗╔╦╗╦ ╦╦  ╔═╗╔═╗
 *  ╠═╝╠╦╝║ ║ ║║║ ║║   ║   ╚═╗║╣ ╠╦╝║║╣ ╚═╗  ╚═╗ ║ ╚╦╝║  ║╣ ╚═╗
 *  ╩  ╩╚═╚═╝═╩╝╚═╝╚═╝ ╩   ╚═╝╚═╝╩╚═╩╚═╝╚═╝  ╚═╝ ╩  ╩ ╩═╝╚═╝╚═╝
 */

#product-series {
	padding: 64px;
	max-width: var(--maximum-page-width);
	margin: 0 auto;
}

@media only screen and (max-width: 1023px) {
	#product-series {
		padding: 0;
	}
}

/******************** BREADCRUMBS ********************/
ul#breadcrumbs, ul#breadcrumbs li {
	margin: 0;
	padding: 0;
	font-size: var(--font-size-small);
}

ul#breadcrumbs {
	list-style-type: none; /* removes bullets from list */
	height: 30px;
	position: relative;
	top: -20px;
	margin-bottom: -10px;
	display: flex;
}

ul#breadcrumbs li {
	padding-right: 10px;
}

/* adds a separator character (>) between items in breadcrumb list */
ul#breadcrumbs li::after {
	content: var(--breadcrumb-separator);
	padding-left: 10px;
}

/* selects the last item in the list and removes the separator character */
ul#breadcrumbs li:last-child::after {
	content: unset;
}

@media only screen and (max-width: 1023px) {
	/* turns off breadcrumbs on mobile
	 * at least until we can style them better*/
	ul#breadcrumbs {
		display: none;
	}
}

/******************** HEADINGS ********************/
.series-heading {
	display: flex;
	align-items: baseline;
}

.series-heading h1.series, h1.model-number, h1.price {
	margin: 0;
	font-size: 36px;
	font-weight: var(--medium);
}

.series-heading h2.subheading {
	margin: 0;
	font-size: 28px;
	font-weight: var(--light);
	padding-left: 32px;
}

h1.price {
	text-align: center;
}

@media only screen and (max-width: 1023px) {
	.series-heading {
		flex-direction: column;
		padding: 16px;
	}
	.series-heading h1.series {
		font-size: 32px;
	}
	.series-heading h2.subheading {
		padding-left: 0;
		font-size: 18px;
	}
}

/******************** PRODUCT INFO BOX ********************/
/*********** model number, images, spec summary ***********/
.products {
	background-color: var(--content-background-color);
}

.product {
	display: flex;
	border: var(--default-border);
	border-bottom: 0;
}

.product .info {
	padding: 28px;
	border-right: var(--default-border);
	flex-basis: 67%;
	flex-grow: 1;
}

.product-heading {
	display: flex;
	justify-content: space-between;
}

.spec-summary {
	display: flex;
}

.spec-summary .spec {
	padding: 0 15px 0 15px;
	text-align: center;
	font-size: 18px;
}

.spec-summary .spec .value {
	font-weight: var(--medium);
}

.product .images .main-image {
	width: 100%;
	cursor: pointer;
}

img {
	max-width: 100%;
	max-height: 100%;
}

.product .thumbnails {
	margin-top: 28px;
	display: flex;
	flex-wrap: wrap;
}

.product .thumbnail {
	margin-right: 8px; /* TODO: this is for the image gallery, delete or move */
	padding: 4px;
	border: var(--default-border);
	height: 64px;
	width: 128px;
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
}

@media only screen and (max-width: 1023px) {
	.product {
		position: relative;
		flex-direction: column;
		align-items: center;
		padding: 16px;
	}

	.product-heading {
		flex-direction: column;
		justify-content: center;
	}

	.product-heading h1.model-number {
		text-align: center;
	}

	.spec-summary {
		justify-content: center;
	}
	
	.product .info {
		border-right: 0;
		padding: 0;
	}

	.product .thumbnails {
		justify-content: center;
	}

	.product .thumbnail {
		height: 48px;
		width: 96px;
		margin: 4px;
	}
}

/******************** PURCHASE BOX ********************/
/***************** price, add to card *****************/
.product .pricing {
	position: relative;
	padding: 28px;
	flex-basis: 33%;
	flex-grow: 1;
	max-width: 500px;
}

.pricing .purchase-options, .pricing .purchase-info {
	padding-top: 28px;
}

/* centers everything in the table */
.purchase-options form table {
	display: flex;
	justify-content: center;
}

.purchase-options form table td {
	font-size: var(--font-size-small);
	font-weight: var(--light);
}

/* styles the dropdown menu */
.purchase-options form select {
	border: 1px solid var(--button-color-active);
	-moz-appearance: none;
	-webkit-appearance: none;
	-moz-border-radius: 0;
	-webkit-border-radius: 0;
	border-radius: 0;
	outline: none;
	height: 48px;
	width: 288px;
	font-size: 18px;
	text-align: center;
	padding: 0 28px 0 8px;
	background-color: transparent;
	background-image: url(../images/down-arrow.svg);
	background-repeat: no-repeat;
	background-position: right 16px top 50%, 0 0;
}

/* turns off the ugly blue outline when selecting the dropdown menu */
.purchase-options form select:focus {
	outline: none;
}

/* add to cart button - regular state */
.purchase-options form .add-cart {
	background-color: var(--button-color-active);
	font-size: 18px;
	font-weight: var(--medium);
	text-align: center;
	line-height: 48px;
	text-decoration: none;
	color: white;
	height: 48px;
	width: 288px;
	display: block;
	margin-top: 16px;
}

/* info below add to cart button
 * fits maximum of two lines nicely */
.pricing .purchase-info {
	line-height: 24px;
	height: 48px;
	text-align: center;
}

/* out of stock */
.pricing.out-of-stock .price {
	color: var(--button-color-inactive);
}

.pricing.out-of-stock .purchase-options form .add-cart {
	background-color: var(--button-color-inactive);
	pointer-events: none; /* makes button unclickable! */
}

/* on sale */
.pricing.sale h1.price {
	color: var(--sale-color);
}

.pricing.sale .price-info {
	text-align: center;
	font-size: 18px;
}

.pricing.sale .sale-amount {
	position: absolute;
	top: 0;
	right: 0;
	font-weight: var(--medium);
	font-size: 16px;
	background-color: var(--sale-color);
	color: var(--sale-text-color);
	padding: 2px 16px;
}

/* backorder */
.pricing.backorder .price-info {
	text-align: center;
	font-size: 18px;
	color: var(--sale-color);
	font-weight: var(--medium);
}

@media only screen and (max-width: 1023px) {
	.product .pricing {
		padding: 16px 0;
		position: unset;
	}

	.product .pricing h1.price {
		margin-top: 16px;
	}
}


/******************** DESCRIPTION ********************/

.products .description {
	border: var(--default-border);
	padding: 28px;
}

.products .description h1.description-heading {
	font-size: 24px;
	font-weight: var(--medium);
	margin-bottom: 16px;
}

.products .description .content {
	font-size: 18px;
	font-weight: var(--light);
	margin-bottom: 30px;
}

.products .description .part-description {
	padding: 32px 0 0 0;
}

.products .description .part-description h2.part-heading {
	font-size: 18px;
	font-weight: var(--medium);
	margin-bottom: 16px;
}

.products .description .part-description .part-content {
	display: flex;
}

.products .description .part-description img {
 	max-width: 160px;
 	max-height: 160px;
 	margin-right: 16px;
 }

@media only screen and (max-width: 1023px) {
	.products .description {
		padding: 16px;
	}

	.products .description .part-description .part-content {
		flex-direction: column;
		align-items: center;
	}

	.products .description .part-description img {
		margin: 0 0 16px 0;
	}
}

 /******************** SPECIFICATIONS ********************/

table#specs {
	border-collapse: collapse;
	width: 100%;
	font-size: 18px;
}

#specs th, #specs td {
  border: 1px solid var(--button-color-active);
  /*white-space: nowrap;*/
}

table#specs thead th {
	background-color: var(--table-heading-background-color);
	color: var(--table-heading-text-color);
	font-size: var(--font-size-default);
	font-weight: var(--medium);
}

table#specs tbody th {
	text-align: left;
	padding: 8px;
}

table#specs td {
	padding: 8px;
}

@media only screen and (max-width: 1023px) {
	.horizontal-scroll {
		overflow-x: scroll;
		white-space: nowrap;
	}

	table#specs th, table#specs td {
		white-space: nowrap;
		font-size: var(--font-size-small);
	}
}

