:root {
	--primary: rgb(45, 168, 132);
	--fg-disabled: #DDDDDD;
	--bg-disabled: #ABABAB;
	--bg-hover-offwhite: #F9F9F9;
	--max-body-width: 1240px;
	/* This box shadow is color matched to white background */
	--box-shadow-color: 0deg 0% 63%;
	--box-shadow:
		0.3px 0.5px 0.7px hsl(var(--box-shadow-color) / 0.34),
		0.4px 0.8px 1px -1.2px hsl(var(--box-shadow-color) / 0.34),
		1px 2px 2.5px -2.5px hsl(var(--box-shadow-color) / 0.34);
	font-family: "Forum";
	font-size: 18px;
}

@font-face {
	font-family: "Material Icons Sharp Variable";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/material-icons-sharp-variable.woff2) format("woff2-variations");
}

@font-face {
	font-family: "Noto Sans Variable";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/noto-sans-variable.ttf) format("truetype-variations");
}

@font-face {
	font-family: "Noto Serif Variable";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/noto-serif-variable.ttf) format("truetype-variations");
}

@font-face {
	font-family: "Forum";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/Forum.ttf);
}

@font-face {
	font-family: "Cinzel Decorative";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/CinzeldecorativeRegular-qmzq.ttf);
}

@font-face {
	font-family: "Regal";
	font-style: normal;
	font-weight: normal;
	src: url(./static/webfonts/Regal.ttf);
}

h1 {
	color: red;
	font-family: "Cinzel Decorative", serif;
	font-weight: normal;
	font-size: 2.2rem;
}

h1::first-letter {
	/* color: black; */
	font-family: "Regal";
	font-weight: normal;
	font-size: 2.2em;
	vertical-align: middle;
}

h2 {
	text-transform: uppercase;
	font-size: 1.5rem;
}

.header-link {
	padding-left: 16px;
	padding-right: 16px;
	font-size: 2rem;
}

.header-link::first-letter {
	font-family: "Cinzel Decorative", serif;
	color: red;
}

.product-dropdown {
	margin-left: 16px;
	font-size: 1.5em;
	display: flex;
	row-gap: 0.2em;
	padding: 0.2em;
}

a {
	color: currentColor;
	text-decoration: none;
	display: inline-block;
}

.top-nav>a::first-letter {
	font-family: "Cinzel Decorative", serif;
	color: red;
}

.store-info {
	margin-top: 1rem;
	margin-bottom: 1rem;
	font-size: 1.2rem;
}

.store-info>a {
	color: red;
}

/*
	You can lookup the code points using the link below:
	https://github.com/google/material-design-icons/blob/master/variablefont/MaterialSymbolsOutlined%5BFILL%2CGRAD%2Copsz%2Cwght%5D.codepoints
*/
.icon {
	font-family: "Material Icons Sharp Variable";
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	/* Preferred icon size */
	display: inline-block;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;
	line-height: 40px;
}

[data-sortable="true"]:not(:hover) .icon:not(.active) {
	visibility: hidden;
}

input,
label,
textarea {
	display: block;
}

ul {
	list-style-type: none;
	padding: 0px;
	padding-right: 20px;
	color: grey;
}
ul::-webkit-scrollbar-track
{
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
	background-color: #F5F5F5;
}

ul::-webkit-scrollbar
{
	width: 6px;
	background-color: #F5F5F5;
}

ul::-webkit-scrollbar-thumb
{
	background-color: #555555;
	border: 2px solid #555555;
}

.footer-list {
	flex-basis: 200px;
}

html {
	overflow-x: hidden;
	width: 100%;
	box-sizing: border-box;
	border-image: url('/static/border.svg');
	border-image-slice: 14% 18%;
	border-image-repeat: repeat;
	border-width: 150px;
	border-style: solid;
	display: flex;
	justify-content: center;
}

*,
*:before,
*:after {
	box-sizing: inherit;
}

body {
	max-width: var(--max-body-width);
	width: calc(100% + 100px);
	margin: -50px;
	display: grid;
	grid-template-areas:
		'header header'
		'aside main'
		'footer footer';
	grid-template-rows: auto 1fr auto;
	grid-template-columns: minmax(0, auto) minmax(0, 1fr);
	min-height: calc(100vh - 20px);
	height: 100%;
}

header {
	grid-area: header;
}

header>div {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 1rem;
}

.top-nav {
	display: flex;
}

.header-buttons {
	display: flex;
	column-gap: 10px;
	justify-content: end;
}

.search-menu {
	flex-direction: row;
	padding: 0px;
	height: 40px;
	border-style: none;
	margin-left: -440px;
}

.search-input {
	width: 440px;
}

.search-button {
	background: none;
	color: inherit;
	border: none;
	outline: none;
	padding: 0px;
	width: 40px;
	height: 40px;
}

.header-icon {
	width: 40px;
	height: 40px;
	text-align: center;
}

main {
	grid-area: main;
}

.copyright {
	padding: 1rem;
	text-align: center;
}

.hover-menu:hover>menu,
menu:focus-within,
menu:focus,
menu:hover,
.hover-menu:focus-within>menu {
	visibility: visible;
}

.hover-menu>menu {
	visibility: hidden;
}

.cart-menu {
	min-height: 200px;
	max-height: 60vh;
	width: 240px;
	right: 0px;
	overflow-y: auto;
	overflow-x: hidden
}

.cart-icon[cart-items]::after {
	margin-top: 2px;
	margin-left: -2px;
	content: attr(cart-items);
	position: absolute;
	height: 12px;
	width: 12px;
	line-height: 12px;
	font-size: 12px;
	background: red;
	font-weight: bold;
	color: white;
	font-family: "Forum";
	border-radius: 50%;
}

menu {
	margin: 0px;
	padding: 0px;
	position: absolute;
	z-index: 101;
	background-color: white;
	border-color: lightgray;
	border-style: solid;
	border-width: 1px;
	display: flex;
	flex-direction: column;
	;
}

menu > div {
	padding: 8px;
}

aside {
	grid-area: aside;
	width: 230px;
	transition: margin-left .5s ease-in-out;
}

aside>div {
	display: flex;
	flex-direction: column;
	padding-right: 1rem;
	gap: 1rem;
}

.box {
	max-width: 50%;
	border-style: solid;
	border-radius: 5px;
	border-width: 1px;
	border-color: lightgrey;
	padding: 20px;
	margin-top: 34px;
	margin-bottom: 34px;
}

input,
select {
	background-color: inherit;
	border: 1px solid black;
}
input[type="radio"], input[type="checkbox"] {
	width: unset;
	margin: 0px;
}

label:has(input[type="radio"], input[type="checkbox"]) {
	margin-bottom: 10px;
	display: flex;
	justify-content: space-between;
}

label:has(input:not(input[type="radio"], input[type="checkbox"]))::before,
label:has(select)::before,
label:has(textarea)::before {
	content: " ";
	position: absolute;
	background-image: url(./static/corner2.svg);
	background-size: contain;
	background-repeat: no-repeat;
	width: 1.7em;
	height: 1.7em;
	margin-top: calc(1em + 11px);
}

label>input,
label>select {
	padding-left: 1.5em;
	margin-top: 10px;
	margin-bottom: 10px;
	width: 100%;
}

label>textarea {
	padding: 1.7em;
	margin-top: 10px;
	margin-bottom: 10px;
	resize: none;
}

label:has(input[type="checkbox"]) {
  justify-content: left !important;
  width: fit-content;
  user-select: none;
}

label:has(input[type="checkbox"]) input[type="checkbox"] {
  margin-right: 8px !important;
  outline: none;
  accent-color: black;
}

label:has(input[type="checkbox"]):hover,
label:has(input[type="checkbox"]):hover input[type="checkbox"] {
  cursor: pointer;
}

label:has(input[type="checkbox"]) input[type="checkbox"]:focus {
  outline: none;
  box-shadow: none;
}

input:focus,
select:focus {
	outline: 2px solid black;
}

option {
	padding: 0.75em;
	background-color: white;
}

.description {
	padding-left: 1rem;
	padding-right: 1rem;
	padding-bottom: 0px;
	border-style: solid;
	border-image: url(./static/alt-border.svg);
	border-image-repeat: repeat;
	border-image-slice: 4% 9% 26% 9%;
	border-top-width: 12px;
	border-left-width: 36px;
	border-bottom-width: 108px;
	border-right-width: 36px;
}

.description>*:first-child {
	margin-bottom: -50px
}

form {
	display: flex;
	flex-direction: column;
	row-gap: 10px;
	padding: 20px;
	border-style: solid;
	border-image: url(./static/form-border.svg);
	border-width: 25px;
	border-image-slice: 24% 8% 25% 9%;
	margin-bottom: 1em;
}

form:user-invalid {
	outline: 1px solid red;
}

/*=================== PRODUCT PAGE NUMBERS ===================*/
:root {
	--pg-num-font-size: 30px;
	--pg-num-size: calc(var(--pg-num-font-size) * 1.5);
	--pg-num-padding: 10px;
	--pg-num-full: calc(var(--pg-num-size) + var(--pg-num-padding));
	--pages: 1
}

.page-num-container {
	display: flex;
	flex-direction: row;
	margin-bottom: 2.5rem;
	justify-content: center;
}

.page-num-container>div {
	overflow: hidden;
	width: round(down, min(calc(100% - 2 * var(--pg-num-full)), calc(var(--pages) * var(--pg-num-full))), var(--pg-num-full));
}

.page-num-container>div>div {
	margin-left: clamp(calc(100% - var(--pages) * var(--pg-num-full)), round(calc(50% - var(--pg-num-full) * var(--page)), var(--pg-num-full)), 0px);
	display: inline-block;
	white-space: nowrap
}

_::-webkit-full-page-media, _:future, .page-num-container>div>div {
	margin-left: clamp(calc(100% - var(--pages) * var(--pg-num-full)), calc(50% - var(--pg-num-full) * var(--page)), 0px);
}

.page-arrows {
	align-content: center;
	min-width: var(--pg-num-size);
	height: var(--pg-num-size);
	margin-right: var(--pg-num-padding);
	text-decoration: none;
	background-image: url(./static/arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.reversed-arrow {
	transform: scale(-1);
}

.page-arrows:hover {
	background: red;
	mask: url("/static/arrow.svg") center/contain;
	mask-repeat: no-repeat;
}

.page-numbers {
	font-weight: bold;
	align-content: center;
	line-height: var(--pg-num-size);
	text-align: center;
	width: var(--pg-num-size);
	font-family: "Forum";
	height: var(--pg-num-size);
	margin-right: var(--pg-num-padding);
	text-decoration: none;
	background-image: url(./static/number-ornament.svg);
	background-size: contain;
	background-repeat: no-repeat;
	font-size: var(--pg-num-font-size);
}

.page-numbers::first-letter {
	font-family: inherit;
	color: unset;
	font-size: inherit;
}

.page-number-selected {
	color: red;
}

.page-numbers:hover {
	color: red;
}

/*=================== PRODUCT PAGE NUMBERS ===================*/

table {
	margin-bottom: 2em;
	border-radius: 0;
	border: 1px solid #dddddd;
	margin: 0 -1px 24px 0;
	margin-bottom: 24px;
	text-align: left;
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

th {
	vertical-align: middle;
	padding: .7em 1em;
	font-weight: 700;
}

tr {
	border-bottom: 1px solid #dddddd;

}

td {
	min-height: 3.25em;
	min-width: 32px;
	vertical-align: middle;
	padding: .7em 1em;
}

dt {
	float: left;
	clear: both;
	margin-right: .25em;
}

dl {
	margin: 0px;
}

input,
select {
	padding: .75em;
	font-family: "Forum";
	font-size: 1rem;
}

label:has(input:out-of-range)::after {
	color:red;
	content: "out of range";
}

label:has(input:not(:out-of-range):user-invalid)::after {
	color:red;
	content: attr(err-msg);
}

input:out-of-range, input:user-invalid {
  background-color: rgb(255 0 0 / 25%);
  outline: 2px solid red;
}



aside a {
	/* border: 1px solid #dddddd; */
	/* margin-bottom: -1px; */
	cursor: pointer;
	/* padding: .5em 1em; */
	text-decoration: none;
	/* font-size: 16px; */
	font-weight: bold;
}

aside a.active {
	color: var(--bg-disabled);
	cursor: default;
}

.btn-primary {
	border-image: url(./static/button2.svg);
	border-style: solid;
	border-top-width: 20px;
	border-left-width: 10px;
	border-right-width: 10px;
	border-bottom: 10px;
	border-image-slice: 50% 18% 0% 18%;
	border-image-repeat: unset;

	padding: 15px 30px 15px 30px;
	border-radius: 0px;

	text-decoration: none;
	cursor: pointer;
}

.btn-secondary {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: white;
	padding: .6em 1.4em;
	cursor: pointer;
	border-style: solid;
	border-color: black;
	border-width: 2px;
	color: black;
	font-weight: bold;
	font-family: "Cinzel Decorative";
	font-size: .75em;
}

.btn-secondary:hover {
	border-color: red;
	color: red;
}

.button-like,
input[type='submit'] {
	display: flex;
	align-items: center;
	align-self: center;
	justify-content: center;
	background-color: white;
	padding: .6em 1.4em;
	cursor: pointer;
	border-style: solid;
	border-color: red;
	border-width: 2px;
	color: red;
	font-weight: bold;
	font-family: "Cinzel Decorative";
	font-size: .75em;
}

.button-small {
	border: 1px solid black;
	padding: 0.3em;
	border-radius: 10%;
}

.button-small:hover {
	/* background-color: rgba(255, 0, 0, 0.25); */
	border-color: red;
	color: red;
}

.button-small.disabled {
	border-color: gray;
	color: gray;
	pointer-events: none;
  	cursor: default;
}

.button-like:hover,
input[type='submit']:hover {
	background-color: rgba(255, 0, 0, 0.25);
}

form:invalid input[type="submit"],
input[type="submit"][disabled],
.button-like.disabled {
	color: var(--bg-disabled);
	border-color: var(--bg-disabled);
	cursor: default;
}

form:invalid input[type="submit"]:hover,
input[type="submit"][disabled]:hover,
.button-like.disabled {
	background-color: rgba(0, 0, 0, 0);
}

.hero-banner>div {
	text-align: center;
	width: 60%;
	margin: auto;
	margin-top: -20%;
}

@media (min-width: 768px) {
    .categories {
        margin-top: 80px;
    }
}

.contact>h1 {
	display: block;
	text-align: center;
	margin-bottom: 0.25rem;
	padding: 0 0.25rem;
}

.contact>h3 {
	display: block;
	text-align: center;
	margin-bottom: 0.10rem;
	padding: 0 0.25rem;
}

.success {
	display: block;
	text-align: center;
	font-size: medium;
	color: green;
}

.error {
	display: block;
	text-align: center;
	font-size: medium;
	color: red;
}

.product-image-carousel {
	position: relative;
	height: 300px;
	max-height: 300px;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-content: stretch;
	align-items: center;
	gap: 8px;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 8px;
	border-radius: 13px;
	background-color: hsl(240, 5%, 98%);
}

.product-image-carousel>.product-image {
	min-width: 200px;
	max-width: 100%;
	position: relative;
	flex: 0 1 25%;
	max-height: 100%;
	overflow: hidden;
	border-radius: 5px;
}

.product-image>.icon {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 20;
}

.product-image>img {
	border-radius: 5px;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

.add-product-image-card {
	text-align: center;
	max-width: 80em;
	margin-left: auto;
	margin-right: auto;
	color: hsl(240, 5%, 2%);
	border: 2px dotted hsl(240, 5%, 75%);
	border-radius: 5px;
	padding: 8px;
}

.close-btn {
	color: white;
	background-color: hsla(0, 0%, 0%, .60);
	border-radius: 100%;
	cursor: pointer;
}

td>a {
	display: block;
	text-decoration: none;
	color: inherit;
	background-color: inherit;
	cursor: pointer;
}

tr:has(a:hover) {
	background-color: var(--bg-hover-offwhite);
	border-radius: 5px;
}

.display-none {
	display: none;
}

/*================== CHECKOUT ==================*/
.checkout {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-flow: row;
	justify-items: stretch;
	gap: 8px;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
}

.form-grid input[type="radio"],
.form-grid input[type="checkbox"] {
	display: inline;
	/* This does actually do something */
	width: initial;
}

.w-full {
	grid-column-end: span 6;
}

.w-half {
	grid-column-end: span 3;
}

.w-third {
	grid-column-end: span 2;
}

details {
	display: block;
	border: 1px solid lightgrey;
}

@keyframes details-show {
	from {
		opacity: 0;
		transform: var(--details-translate, translateY(-0.5em));
	}
}

details[open]>*:not(summary) {
	animation: details-show 150ms ease-in-out;
}

details>div {
	background-color: rgba(0, 0, 0, 0.01);
	padding: 10px 10px;
}

summary::marker,
summary::-webkit-details-marker {
	display: none;
}

summary {
	list-style: none;
	cursor: pointer;
}

summary>label {
	padding: 1em;
	cursor: pointer
}

details[open]>summary {
	border-bottom: 1px solid grey;
}

.product-list {
	background-color: #fcfcfc;
	margin-right: -20px;
	display: flex;
	flex-direction: column;
	gap: 1.25em;
	padding: 2em;
	position: sticky;
	top: 0px;
	height: fit-content;
}

.product-list-item {
	display: flex;
	align-items: center;
}

.product-list-item>img {
	max-height: 75px;
	max-width: 75px;
	object-fit: contain;
	background-color: hsl(0 0 90%);
}

.product-list-item>span:first-of-type {
	padding: 0px 8px;
	white-space: wrap;
	flex-shrink: 1;
}

.product-list-item> :last-child {
	white-space: nowrap;
	flex: 1 0 fit-content;
	text-align: right;
}

.summary-text {
	display: flex;
	justify-content: space-between
}

/*==============================================*/


.settings-container {
	display: flex;
	column-gap: 20px;
}

.settings-nav {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-basis: 40%;
}

.settings-content {
	flex-basis: 60%;
}

.settings-nav-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: inherit;
	text-decoration: none;
	padding: 0.5rem 0.75rem;
}

.settings-nav-item:hover {
	background-color: var(--bg-hover-offwhite);
}

.settings-nav-item.active {
	color: var(--fg-disabled);
	pointer-events: none;
	cursor: default;
}

.alert {
	--fg-error: hsl(0, 100%, 40%);
	--bg-error: hsl(0, 100%, 90%);
	color: var(--fg-error);
	background-color: var(--bg-error);
	border: 1px solid var(--fg-error);
	padding: 0.875rem 1.5rem;
	border-radius: 8px;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.spin {
	user-select: none;
	animation-name: spin;
	animation-duration: 5000ms;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

.tab {
	background-color: #f1f1f1;
}

.tab a {
	color: inherit;
	text-decoration: none;
	background-color: inherit;
	float: left;
	border: none;
	outline: none;
	cursor: pointer;
	padding: 14px 16px;
}

.tab a:hover {
	background-color: #ddd;
}

.tab a.active {
	background-color: #ccc;
}

footer {
	grid-area: footer;
	position: relative;
	align-items: stretch;
	display: flex;
	flex-direction: column;
}


.footer-list-container {
	display: flex;
	justify-content: center;

}

.footer-link {
	display: block;
	color: black;
	text-decoration: none;
	line-height: 1.5rem;
}

.footer-link:hover {
	color: red;
}

.product-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 1fr;
	column-gap: 1rem;
	row-gap: 1rem;
}

.split-width {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(2, 1fr);
	margin-bottom: 1em;
}

.split-width>*{
	flex: 50% 0 0;
}

/* ============== Auto Generated Selector Code (UNOPTIMIZED) ============== */
.selector-container {
	font-family: system-ui, -apple-system, sans-serif;
	position: relative;
}

.selector-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 280px;
	background: white;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	padding: 16px;
	margin-top: 4px;
	z-index: 1000;
}

.section-title {
	color: #666;
	font-size: 14px;
	margin-bottom: 12px;
}

.option-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.option-item {
	display: flex;
	align-items: center;
	padding: 8px;
	cursor: pointer;
	border-radius: 4px;
	margin-bottom: 4px;
}

.option-item:hover {
	background: #f5f5f5;
}

.radio-circle {
	width: 20px;
	height: 20px;
	border: 2px solid #ddd;
	border-radius: 50%;
	margin-right: 12px;
	position: relative;
}

.option-item.selected .radio-circle {
	border-color: #10b981;
}

.option-item.selected .radio-circle::after {
	content: '';
	position: absolute;
	width: 12px;
	height: 12px;
	background: #10b981;
	border-radius: 50%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.selector-button {
	display: flex;
	align-items: center;
	padding: 8px 16px;
	border: 1px solid #ddd;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	background: white;
}

.selector-button svg {
	margin-right: 8px;
}

.heading-reset::first-letter,
.heading-reset {
	text-transform: uppercase;
	font-family: "Forum";
	font-weight: 500;
	vertical-align: baseline;
	font-size: 2.2rem;
	color: black;
}

.card {
	position: relative;
	margin-bottom: 2.5em;
	height: 100%;
	display: flex;
    flex-direction: column;
}

.card-image {
	width: 100%;
	object-fit: contain;
	aspect-ratio: 1 / 1; 
}

.card-details {
	display: flex;
	flex-direction: column;
}

.card-title {
	margin-bottom: .1em;
	margin-top: .5em;
	line-clamp: 2;
	-webkit-line-clamp: 2;
	overflow: hidden; display:
	-webkit-box;
	-webkit-box-orient: vertical;
}
.card-description {
	display: none;
}

/* ======================================================================== */

@media screen and (max-width: 767px) {
	html {
		border-width: 30px;
	}
	body {
		margin: -10px;
		width: calc(100% + 20px);
	}

	:root {
		font-size: 12px;
	}

	.product-grid {
		grid-template-columns: repeat(1, 1fr);
	}

	.split-width {
		grid-template-columns: repeat(1, 1fr);
	}

	header>div {
		grid-template-columns: 1fr 1fr;
	}

	.top-nav {
		display: none;
	}

	.checkout {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}

	.checkout>form {
		order: 2
	}

	.product-list {
		position: unset;
	}

	form {
		border-width: 15px;
	}

	aside {
		margin-left: -70px;
		width: 115px;
		padding-right: 0px;
		transition: margin-left .5s ease-in-out;
	}

	_::-webkit-full-page-media, _:future, aside {
		margin-left: -85px;	
	}

	aside>div {
		padding-right: 10px;
		border-image:url(./static/large-bar.svg);
		border-style: solid;
		border-right-width: 50px;
		border-image-slice: 0 100% 0 0;
		border-image-repeat: stretch;
	}
	
	aside:hover,
	aside:focus,
	aside:focus-within {
		margin-left: 0px;
		box-sizing: content-box;
	}

	.search-menu {
		margin-left: 0px;
		right: 15px;
	}
	.search-input {
		width: calc(100vw - 36px - 40px)
	}
	.card {
		display: grid;
		grid-template-columns: 1.5fr 1fr;
		gap: 1em;
	}

	.card h2{
		display: flex;
		align-items: center;
	}

	.card-description {
		display: block;
		overflow: hidden;
		position: relative;
		height: round(down, calc(100% - 7em), 1.1em);
		margin-top: 1em;
	}
	.card-description>div{
		position: absolute;
	}

	_::-webkit-full-page-media, _:future, .card-description {
		height: 100%;
	}

	.filter-menu {
		right: 16px; 
		transform: translateY(8px);
	}	


}

.product-carousel-container {
	max-height: 500px;
	position: relative;
	overflow: hidden;
	margin-right: 1em;
}

.product-carousel {
	container: carousel / inline-size;
	display: flex;
	overflow-y: hidden;
	max-height: 450px;
	cursor: grab;
	overflow-x: scroll;
	scrollbar-width: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
}

.product-carousel-photo {
	scroll-snap-align: start;
	width: 100%;
	max-height: 100%;
	margin-right: 1px; 
	margin-left: 1px;
}

@container carousel (width < 1240px) {
	.product-carousel-photo>img {
		height: 100%;
		width: 100cqw;
		object-fit: contain;
	}
}
@supports (-webkit-touch-callout: none) {
  .product-carousel-photo {
	min-height: 375px;
  }
}

.product-carousel-thumbnails {
	display: flex;
	column-gap: 5px;
	overflow-x: auto;
	overflow-y: hidden;
}

.product-carousel-thumbnails::-webkit-scrollbar-track
{
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
	background-color: #F5F5F5;
}

.product-carousel-thumbnails::-webkit-scrollbar
{
	height: 6px;
	background-color: #F5F5F5;
}

.product-carousel-thumbnails::-webkit-scrollbar-thumb
{
	background-color: #555555;
	border: 2px solid #555555;
}

.product-carousel-thumbnail-img {
	height: 50px;
	width: 50px;
	object-fit: cover;
	border-style: solid;
	border-radius: 15%;
	border-width: 2px;
	cursor: pointer;
}


.filter-form {
	border: none; 
	padding: 8px; 
	margin-bottom: 0;
}


.product-page-header {
	display:flex; 
	justify-content: space-between; 
	align-items: center; 
}
/*===================== Safari Hacks =====================*/
_::-webkit-full-page-media, _:future, html {
	border-image: unset;
	border-image-slice: unset;
	border-image-repeat: unset;
	border-color: white;
}

