/*
 * Shop.
 *
 * Uses the theme's own tokens: orange #de711e, cream #f4eadb / #fdf6f1, dark
 * brown #24160a, the elyaris display face for headings, square corners.
 */

.shop-section {
	position: relative;
}

/* ---------------------------------------------------------------
   Sidebar
   --------------------------------------------------------------- */

.shop-widget {
	background: #fdf6f1;
	border: 1px solid rgba(222, 113, 30, 0.16);
	padding: 26px 24px;
	margin-bottom: 26px;
}

.shop-widget-title {
	position: relative;
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 24px;
	line-height: 1.2;
	color: #24160a;
	margin: 0 0 20px;
	padding-bottom: 14px;
}

.shop-widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 46px;
	height: 2px;
	background: #de711e;
}

/* Search */

.shop-search {
	display: flex;
	border: 1px solid rgba(36, 22, 10, 0.18);
	background: #fff;
}

.shop-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 12px 14px;
	font-size: 15px;
	color: #24160a;
}

.shop-search input[type="search"]:focus {
	outline: none;
}

.shop-search button {
	flex: 0 0 auto;
	width: 46px;
	border: 0;
	background: #de711e;
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.25s ease;
}

.shop-search button:hover {
	background: #c5620f;
}

.shop-search svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

/* Categories */

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

.shop-cat-list li + li {
	border-top: 1px solid rgba(36, 22, 10, 0.08);
}

.shop-cat-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 0;
	color: #52504e;
	text-decoration: none;
	font-size: 16px;
	transition: color 0.25s ease, padding-left 0.25s ease;
}

.shop-cat-list a:hover,
.shop-cat-list .is-current > a {
	color: #de711e;
	padding-left: 6px;
}

.shop-cat-list em {
	font-style: normal;
	font-size: 13px;
	color: #7a736c;
	background: rgba(222, 113, 30, 0.1);
	padding: 2px 9px;
}

.shop-cat-list .is-current > a em {
	background: #de711e;
	color: #fff;
}

/* Recent products */

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

.shop-recent-list li + li {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(36, 22, 10, 0.08);
}

.shop-recent-list a {
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
}

.shop-recent-thumb {
	flex: 0 0 68px;
	width: 68px;
	height: 68px;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.08);
}

.shop-recent-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.shop-recent-list a:hover .shop-recent-thumb img {
	transform: scale(1.08);
}

.shop-recent-copy {
	min-width: 0;
}

.shop-recent-name {
	display: block;
	font-size: 15px;
	line-height: 1.4;
	color: #24160a;
	transition: color 0.25s ease;
}

.shop-recent-list a:hover .shop-recent-name {
	color: #de711e;
}

.shop-recent-price {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	color: #de711e;
}

.shop-recent-price del {
	color: #a49b93;
	margin-right: 5px;
}

/* ---------------------------------------------------------------
   Toolbar
   --------------------------------------------------------------- */

.shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	padding-bottom: 20px;
	margin-bottom: 30px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
}

.shop-toolbar .woocommerce-result-count {
	margin: 0;
	font-size: 15px;
	color: #7a736c;
}

.shop-toolbar .woocommerce-ordering select {
	border: 1px solid rgba(36, 22, 10, 0.18);
	background: #fff;
	padding: 10px 14px;
	font-size: 15px;
	color: #24160a;
	border-radius: 0;
}

/* ---------------------------------------------------------------
   Product grid
   --------------------------------------------------------------- */

.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

/*
 * WooCommerce sizes grid items with ".woocommerce ul.products.columns-3
 * li.product { width: 30.75% }". That extra columns-* class outweighs a plain
 * ".woocommerce ul.products li.product", so the override has to match its
 * specificity or the cards collapse to a third of their grid cell. The
 * attribute selector covers every columns-N variant without listing each one.
 */
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce ul.products li.product,
ul.products li.product {
	width: 100%;
	margin: 0;
	float: none;
	clear: none;
}

.vmp-product-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.1);
	transition: box-shadow 0.35s ease, transform 0.35s ease, border-color 0.35s ease;
}

.vmp-product-card:hover {
	transform: translateY(-6px);
	border-color: rgba(222, 113, 30, 0.4);
	box-shadow: 0 24px 50px rgba(36, 22, 10, 0.14);
}

.vmp-product-media {
	position: relative;
	overflow: hidden;
	background: #f7f2ec;
}

.vmp-product-image {
	display: block;
	aspect-ratio: 4 / 3;
}

/*
 * WooCommerce forces "height: auto" on loop images with a selector carrying
 * more elements than a plain .vmp-product-image img, so the card selector is
 * repeated here to win and let object-fit crop to a consistent shape.
 */
.woocommerce ul.products li.product .vmp-product-image img,
.vmp-product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.6s ease;
}

.vmp-product-card:hover .vmp-product-image img {
	transform: scale(1.06);
}

.vmp-product-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(36, 22, 10, 0.35);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.vmp-product-card:hover .vmp-product-media::after,
.vmp-product-card:focus-within .vmp-product-media::after {
	opacity: 1;
}

.vmp-product-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 3;
	background: #de711e;
	color: #fff;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 5px 11px;
}

/* Hover actions */

.vmp-product-actions {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

/*
 * The add to cart control keeps WooCommerce's "button" class so its AJAX
 * handler binds, which also drags in WooCommerce's button padding, colours and
 * radius. Both selectors are listed so the icon styling wins over them.
 */
.woocommerce ul.products li.product a.vmp-action,
.woocommerce ul.products li.product .vmp-product-actions .vmp-action,
.vmp-product-actions .vmp-action {
	position: relative;
	width: 48px;
	height: 48px;
	min-width: 0;
	padding: 0;
	margin: 0;
	font-size: 0;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	background-color: #fff;
	color: #24160a;
	border: 0;
	border-radius: 50%;
	text-decoration: none;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.35s ease, transform 0.35s ease, background 0.25s ease, color 0.25s ease;
	box-shadow: 0 10px 24px rgba(36, 22, 10, 0.2);
}

.vmp-product-actions .vmp-action:nth-child(2) {
	transition-delay: 0.06s;
}

.vmp-product-card:hover .vmp-action,
.vmp-product-card:focus-within .vmp-action {
	opacity: 1;
	transform: translateY(0);
}

.woocommerce ul.products li.product a.vmp-action:hover,
.woocommerce ul.products li.product a.vmp-action:focus-visible,
.vmp-product-actions .vmp-action:hover,
.vmp-product-actions .vmp-action:focus-visible {
	background: #de711e;
	background-color: #de711e;
	color: #fff;
	outline: none;
}

/* The tooltip label must stay readable even though the button sets font-size 0. */
.vmp-action-tip {
	font-size: 12px;
}

.vmp-product-actions .vmp-action svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* WooCommerce injects "added" / "loading" states on the cart button. */
.vmp-product-actions .vmp-action.loading {
	opacity: 1;
	pointer-events: none;
}

.vmp-product-actions .vmp-action.loading svg {
	animation: vmp-spin 0.8s linear infinite;
}

@keyframes vmp-spin {
	to { transform: rotate(360deg); }
}

.vmp-product-actions .added_to_cart {
	display: none;
}

/* Tooltip label */

.vmp-action-tip {
	position: absolute;
	bottom: calc(100% + 9px);
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
	background: #24160a;
	color: #fff;
	font-size: 12px;
	letter-spacing: 0.04em;
	padding: 5px 10px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
}

.vmp-action:hover .vmp-action-tip,
.vmp-action:focus-visible .vmp-action-tip {
	opacity: 1;
}

/* Card body */

.vmp-product-body {
	padding: 22px 22px 24px;
	text-align: center;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.vmp-product-cat {
	display: block;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #a08e7d;
	margin-bottom: 10px;
}

.vmp-product-cat a {
	color: inherit;
	text-decoration: none;
}

.vmp-product-cat a:hover {
	color: #de711e;
}

.vmp-product-title {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 23px;
	line-height: 1.3;
	margin: 0 0 12px;
	flex-grow: 1;
}

.vmp-product-title a {
	color: #24160a;
	text-decoration: none;
	transition: color 0.25s ease;
}

.vmp-product-title a:hover {
	color: #de711e;
}

.vmp-product-price {
	display: block;
	font-size: 19px;
	color: #de711e;
}

.vmp-product-price del {
	color: #a49b93;
	font-size: 16px;
	margin-right: 7px;
}

.vmp-product-price ins {
	text-decoration: none;
}

/* ---------------------------------------------------------------
   Pagination and notices
   --------------------------------------------------------------- */

.shop-pagination {
	margin-top: 46px;
}

.shop-pagination .blog-pagination a,
.shop-pagination .blog-pagination span {
	border-color: rgba(36, 22, 10, 0.2);
	color: #24160a;
	transition: all 0.25s ease;
}

.shop-pagination .blog-pagination a:hover,
.shop-pagination .blog-pagination .current {
	background: #de711e;
	border-color: #de711e;
	color: #fff;
}

.shop-empty {
	font-size: 18px;
	color: #52504e;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: #de711e;
	background: #fdf6f1;
	margin-bottom: 28px;
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: #de711e;
}

.woocommerce-message .button,
.woocommerce a.button,
.woocommerce button.button {
	background: #de711e;
	color: #fff;
	border-radius: 0;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: #c5620f;
	color: #fff;
}

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */

@media (max-width: 1199px) {
	.woocommerce ul.products,
	ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 991px) {
	.shop-sidebar {
		margin-top: 44px;
	}

	.vmp-product-title {
		font-size: 20px;
	}

	/* Touch devices get no hover, so the actions stay visible. */
	.vmp-action {
		opacity: 1 !important;
		transform: none !important;
	}

	.vmp-product-media::after {
		opacity: 0.18;
	}
}

@media (max-width: 575px) {
	.woocommerce ul.products,
	ul.products {
		grid-template-columns: 1fr;
	}

	.shop-toolbar {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---------------------------------------------------------------
   Hero banner
   --------------------------------------------------------------- */

/*
 * A shop banner with no heading is a plain branded band, so it does not need
 * the tall padding a heading and a divider ask for.
 */
.hero-section--shop.is-bare {
	padding: 34px 0;
}

/* ---------------------------------------------------------------
   Search suggestions
   --------------------------------------------------------------- */

.shop-search {
	position: relative;
}

.shop-search-results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 20;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.14);
	box-shadow: 0 18px 40px rgba(36, 22, 10, 0.12);
	max-height: 340px;
	overflow-y: auto;
}

.shop-search-results ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.shop-search-results li + li {
	border-top: 1px solid rgba(36, 22, 10, 0.08);
}

.shop-search-results a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	text-decoration: none;
	transition: background 0.2s ease;
}

.shop-search-results a:hover,
.shop-search-results a:focus-visible {
	background: #fdf6f1;
}

.shop-search-thumb {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	overflow: hidden;
	background: #f4eadb;
}

.shop-search-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.shop-search-copy {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.shop-search-name {
	font-size: 15px;
	color: #24160a;
	line-height: 1.3;
}

.shop-search-price {
	font-size: 13px;
	color: #de711e;
}

.shop-search-empty {
	margin: 0;
	padding: 14px 12px;
	font-size: 14px;
	color: #52504e;
}

.shop-search-all {
	display: block;
	padding: 11px 12px;
	border-top: 1px solid rgba(36, 22, 10, 0.08);
	background: #fdf6f1;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	color: #de711e;
	text-decoration: none;
}

.shop-search-all:hover {
	background: #de711e;
	color: #fff;
}

/* ---------------------------------------------------------------
   Empty results
   --------------------------------------------------------------- */

.shop-empty {
	padding: 46px 0 10px;
}

.shop-empty h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 32px;
	color: #24160a;
	margin-bottom: 12px;
}

.shop-empty p {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
	margin-bottom: 26px;
}

/* ---------------------------------------------------------------
   Product detail
   --------------------------------------------------------------- */

.single-product-section .woocommerce-breadcrumb {
	margin-bottom: 30px;
	font-size: 14px;
	color: #a08e7d;
}

.single-product-section .woocommerce-breadcrumb a {
	color: #52504e;
	text-decoration: none;
}

.single-product-section .woocommerce-breadcrumb a:hover {
	color: #de711e;
}

.vmp-single-top {
	margin-bottom: 30px;
}

/* Gallery */

.vmp-single-gallery {
	position: relative;
	background: #fdf6f1;
}

.vmp-single-gallery .vmp-product-badge {
	z-index: 3;
}

.vmp-single-gallery .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.vmp-single-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block;
}

.vmp-single-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
}

.vmp-single-gallery .flex-control-thumbs li {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.vmp-single-gallery .flex-control-thumbs img {
	width: 100%;
	height: auto;
	opacity: 0.55;
	transition: opacity 0.25s ease;
	cursor: pointer;
}

.vmp-single-gallery .flex-control-thumbs img.flex-active,
.vmp-single-gallery .flex-control-thumbs img:hover {
	opacity: 1;
}

.vmp-single-gallery .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 4;
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: #24160a;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(36, 22, 10, 0.14);
}

/* Summary */

/*
 * WooCommerce floats the summary at 48% so it can sit beside the gallery in its
 * own single column layout. The two are already separate grid columns here, so
 * both the float and the width have to go or the summary ends up a third of the
 * width of the column holding it.
 */
.woocommerce div.product div.summary.vmp-single-summary,
.woocommerce-page div.product div.summary.vmp-single-summary,
.vmp-single-summary {
	float: none;
	width: 100%;
	margin-bottom: 0;
	padding-left: 8px;
}

.vmp-single-cat {
	display: block;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #a08e7d;
	margin-bottom: 12px;
}

.vmp-single-cat a {
	color: inherit;
	text-decoration: none;
}

.vmp-single-cat a:hover {
	color: #de711e;
}

.vmp-single-summary .product_title {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 44px;
	line-height: 1.15;
	color: #0d0803;
	margin: 0 0 16px;
}

.vmp-single-summary .price {
	display: block;
	font-size: 30px;
	color: #de711e;
	margin: 0 0 20px;
}

.vmp-single-summary .price del {
	color: #a49b93;
	font-size: 22px;
	margin-right: 10px;
}

.vmp-single-summary .price ins {
	text-decoration: none;
}

.vmp-single-summary .woocommerce-product-details__short-description {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
}

.vmp-single-summary .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

.vmp-single-summary .stock {
	font-size: 15px;
	margin-bottom: 14px;
}

.vmp-single-summary .stock.in-stock {
	color: #3f7d52;
}

.vmp-single-summary .stock.out-of-stock {
	color: #b3452c;
}

/* Add to cart row */

.vmp-single-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-bottom: 28px;
}

.vmp-single-summary form.cart .quantity {
	margin: 0;
}

.woocommerce .vmp-single-summary form.cart button.button,
.vmp-single-summary form.cart button.button {
	flex-grow: 1;
	min-width: 200px;
	background: #de711e;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 17px 30px;
	border: none;
	border-radius: 0;
	box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.5);
	transition: background 0.3s ease;
}

.woocommerce .vmp-single-summary form.cart button.button:hover,
.vmp-single-summary form.cart button.button:hover {
	background: #000;
	color: #fff;
}

/* Quantity stepper */

.quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid rgba(36, 22, 10, 0.2);
	background: #fff;
}

.woocommerce .quantity input.qty,
.quantity input.qty {
	width: 54px;
	height: 54px;
	border: none;
	border-left: 1px solid rgba(36, 22, 10, 0.12);
	border-right: 1px solid rgba(36, 22, 10, 0.12);
	text-align: center;
	font-size: 16px;
	color: #24160a;
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}

.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.vmp-qty-btn {
	width: 44px;
	border: none;
	background: transparent;
	color: #24160a;
	font-size: 19px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.vmp-qty-btn:hover {
	background: #de711e;
	color: #fff;
}

.quantity--readonly .vmp-qty-btn {
	display: none;
}

/* Assurances */

.vmp-single-assurances {
	list-style: none;
	margin: 0 0 26px;
	padding: 22px 0 0;
	border-top: 1px solid rgba(36, 22, 10, 0.12);
	display: grid;
	gap: 13px;
}

.vmp-single-assurances li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 15px;
	color: #52504e;
}

.vmp-single-assurances svg {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	fill: none;
	stroke: #de711e;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Meta */

.vmp-single-summary .product_meta {
	font-size: 14px;
	color: #52504e;
	border-top: 1px solid rgba(36, 22, 10, 0.12);
	padding-top: 20px;
}

.vmp-single-summary .product_meta > span {
	display: block;
	margin-bottom: 8px;
}

.vmp-single-summary .product_meta a {
	color: #24160a;
	text-decoration: none;
}

.vmp-single-summary .product_meta a:hover {
	color: #de711e;
}

/* Tabs */

.woocommerce-tabs {
	margin: 20px 0 70px;
	border-top: 1px solid rgba(36, 22, 10, 0.12);
	padding-top: 34px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 13px 26px;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	font-family: "Work Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #52504e;
	text-decoration: none;
	transition: all 0.25s ease;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover,
.woocommerce-tabs ul.tabs li.active a {
	background: #de711e;
	border-color: #de711e;
	color: #fff;
}

.woocommerce-Tabs-panel h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 28px;
	color: #24160a;
	margin-bottom: 16px;
}

.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel li {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
}

.woocommerce table.shop_attributes th {
	font-weight: 600;
	color: #24160a;
}

/* Related */

.related.products,
.up-sells.products {
	border-top: 1px solid rgba(36, 22, 10, 0.12);
	padding-top: 48px;
}

.related.products > h2,
.up-sells.products > h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 36px;
	color: #24160a;
	margin-bottom: 32px;
}

/* ---------------------------------------------------------------
   Cart and checkout page shell
   --------------------------------------------------------------- */

/*
 * The cart and the checkout are ordinary pages, so they arrive through the
 * default page template's reading-width column. Both need the full width back.
 */
.woocommerce-cart .page-content-section .col-lg-9,
.woocommerce-checkout .page-content-section .col-lg-9,
.woocommerce-account .page-content-section .col-lg-9 {
	flex: 0 0 100%;
	max-width: 100%;
}

/* ---------------------------------------------------------------
   Cart
   --------------------------------------------------------------- */

.vmp-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 40px;
	align-items: start;
}

.woocommerce table.shop_table.vmp-cart-table,
.vmp-cart-table {
	width: 100%;
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	border-collapse: collapse;
	margin: 0;
}

.vmp-cart-table thead th {
	background: #fdf6f1;
	font-family: "Work Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #52504e;
	padding: 16px 14px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
	text-align: left;
}

.woocommerce table.shop_table.vmp-cart-table td,
.vmp-cart-table td {
	padding: 20px 14px;
	border-top: 1px solid rgba(36, 22, 10, 0.1);
	vertical-align: middle;
	font-size: 16px;
	color: #24160a;
}

.vmp-cart-table .product-thumbnail {
	width: 96px;
}

/* WooCommerce sizes cart thumbnails at 32px, which is too small to recognise. */
.woocommerce table.cart.vmp-cart-table td.product-thumbnail img,
.vmp-cart-table .product-thumbnail img {
	width: 82px;
	height: 82px;
	object-fit: cover;
	display: block;
	box-shadow: none;
}

.vmp-cart-table .product-name a {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 21px;
	color: #24160a;
	text-decoration: none;
}

.vmp-cart-table .product-name a:hover {
	color: #de711e;
}

.vmp-cart-table .product-price,
.vmp-cart-table .product-subtotal {
	white-space: nowrap;
}

.vmp-cart-table .product-subtotal {
	font-weight: 600;
	color: #de711e;
}

.vmp-cart-table .product-remove {
	width: 52px;
	text-align: right;
}

.woocommerce .vmp-cart-table td.product-remove a.remove,
.vmp-cart-table .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(36, 22, 10, 0.16);
	/* WooCommerce sets the remove link's colour with !important. */
	color: #52504e !important;
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
	background: transparent !important;
	border-radius: 0;
	transition: all 0.25s ease;
}

.woocommerce .vmp-cart-table td.product-remove a.remove:hover,
.vmp-cart-table .product-remove a.remove:hover {
	background: #b3452c !important;
	border-color: #b3452c;
	color: #fff !important;
}

/* Actions row */

.vmp-cart-table td.actions {
	background: #fdf6f1;
	padding: 18px 14px;
}

.vmp-cart-table td.actions .coupon {
	display: inline-flex;
	gap: 8px;
	margin-right: 12px;
}

.woocommerce .vmp-cart-table td.actions .coupon input.input-text,
.vmp-cart-table td.actions .coupon input.input-text {
	width: 190px;
	height: 48px;
	padding: 0 14px;
	border: 1px solid rgba(36, 22, 10, 0.2);
	background: #fff;
	font-size: 15px;
	border-radius: 0;
	margin: 0;
}

.woocommerce .vmp-cart-table td.actions button.button,
.vmp-cart-table td.actions button.button {
	height: 48px;
	padding: 0 22px;
	background: #de711e;
	color: #fff;
	border: none;
	border-radius: 0;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background 0.25s ease;
}

.woocommerce .vmp-cart-table td.actions button.button:hover,
.vmp-cart-table td.actions button.button:hover {
	background: #000;
	color: #fff;
}

.woocommerce .vmp-cart-table td.actions button.button--ghost,
.vmp-cart-table td.actions button.button--ghost {
	background: transparent;
	border: 1px solid rgba(36, 22, 10, 0.3);
	color: #24160a;
}

.woocommerce .vmp-cart-table td.actions button.button--ghost:hover,
.vmp-cart-table td.actions button.button--ghost:hover {
	background: #24160a;
	border-color: #24160a;
	color: #fff;
}

.vmp-cart-table td.actions button.button[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
}

.vmp-cart-continue {
	margin: 22px 0 0;
}

.vmp-cart-continue a {
	font-size: 15px;
	color: #52504e;
	text-decoration: none;
}

.vmp-cart-continue a:hover {
	color: #de711e;
}

/* Totals card */

.vmp-cart-aside .cart-collaterals,
.vmp-cart-aside .cart_totals {
	width: 100% !important;
	float: none !important;
}

.woocommerce .vmp-cart-aside .cart_totals,
.vmp-cart-aside .cart_totals {
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 28px 26px 30px;
	position: sticky;
	top: 24px;
}

.vmp-cart-aside .cart_totals h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 27px;
	color: #24160a;
	margin: 0 0 20px;
}

.woocommerce .vmp-cart-aside .cart_totals table.shop_table,
.vmp-cart-aside .cart_totals table {
	width: 100%;
	border: none;
	border-collapse: collapse;
	margin: 0 0 22px;
}

.woocommerce .vmp-cart-aside .cart_totals table th,
.woocommerce .vmp-cart-aside .cart_totals table td,
.vmp-cart-aside .cart_totals table th,
.vmp-cart-aside .cart_totals table td {
	padding: 12px 0;
	border: none;
	border-bottom: 1px solid rgba(36, 22, 10, 0.1);
	font-size: 16px;
	color: #52504e;
	background: transparent;
	text-align: left;
	font-weight: 400;
}

.vmp-cart-aside .cart_totals table td {
	text-align: right;
	color: #24160a;
}

.vmp-cart-aside .cart_totals .order-total th,
.vmp-cart-aside .cart_totals .order-total td {
	border-bottom: none;
	font-size: 20px;
	font-weight: 600;
	color: #24160a;
	padding-top: 16px;
}

.vmp-cart-aside .cart_totals .order-total td {
	color: #de711e;
}

.vmp-cart-aside .shipping-calculator-button {
	color: #de711e;
	font-size: 14px;
}

.woocommerce .vmp-cart-aside .wc-proceed-to-checkout a.checkout-button,
.vmp-cart-aside .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: #de711e;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 17px 24px;
	border-radius: 0;
	box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.5);
	margin: 0;
	transition: background 0.3s ease;
}

.woocommerce .vmp-cart-aside .wc-proceed-to-checkout a.checkout-button:hover,
.vmp-cart-aside .wc-proceed-to-checkout a.checkout-button:hover {
	background: #000;
}

/* Empty cart */

.vmp-cart-empty {
	text-align: center;
	padding: 30px 20px 60px;
}

.vmp-cart-empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	margin-bottom: 24px;
	background: #fdf6f1;
	border-radius: 50%;
}

.vmp-cart-empty-icon svg {
	width: 38px;
	height: 38px;
	fill: none;
	stroke: #de711e;
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.woocommerce .vmp-cart-empty .cart-empty,
.vmp-cart-empty .cart-empty {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 34px;
	color: #24160a;
	border: none;
	background: none;
	padding: 0;
	margin: 0 0 12px;
}

.woocommerce .vmp-cart-empty .cart-empty::before {
	display: none;
}

.vmp-cart-empty-copy {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
	max-width: 460px;
	margin: 0 auto 30px;
}

/* ---------------------------------------------------------------
   Checkout
   --------------------------------------------------------------- */

.vmp-checkout-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 390px;
	gap: 40px;
	align-items: start;
}

.woocommerce .vmp-checkout .col2-set,
.vmp-checkout .col2-set {
	width: 100%;
	display: block;
}

.woocommerce .vmp-checkout .col2-set .col-1,
.woocommerce .vmp-checkout .col2-set .col-2,
.vmp-checkout .col2-set .col-1,
.vmp-checkout .col2-set .col-2 {
	width: 100%;
	float: none;
	max-width: 100%;
	padding: 0;
}

.vmp-checkout h3 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 27px;
	color: #24160a;
	margin: 0 0 22px;
}

.vmp-checkout .col2-set .col-2 h3 {
	margin-top: 34px;
}

/* Form fields */

.woocommerce .vmp-checkout .form-row,
.vmp-checkout .form-row {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0 0 18px;
}

.woocommerce .vmp-checkout .form-row label,
.vmp-checkout .form-row label {
	font-size: 14px;
	font-weight: 600;
	color: #24160a;
	margin-bottom: 7px;
}

.woocommerce form.vmp-checkout .form-row .required,
.vmp-checkout .form-row .required {
	color: #de711e;
	text-decoration: none;
	border: none;
}

.woocommerce .vmp-checkout .form-row input.input-text,
.woocommerce .vmp-checkout .form-row textarea,
.woocommerce .vmp-checkout .form-row select,
.vmp-checkout .form-row input.input-text,
.vmp-checkout .form-row textarea,
.vmp-checkout .form-row select,
.vmp-checkout .select2-container .select2-selection--single {
	width: 100%;
	height: 52px;
	padding: 0 15px;
	border: 1px solid rgba(36, 22, 10, 0.2);
	border-radius: 0;
	background: #fff;
	font-family: "Work Sans", sans-serif;
	font-size: 16px;
	color: #24160a;
	box-shadow: none;
	transition: border-color 0.25s ease;
}

.vmp-checkout .form-row textarea {
	height: 110px;
	padding: 14px 15px;
	line-height: 26px;
}

.woocommerce .vmp-checkout .form-row input.input-text:focus,
.vmp-checkout .form-row input.input-text:focus,
.vmp-checkout .form-row textarea:focus,
.vmp-checkout .form-row select:focus {
	outline: none;
	border-color: #de711e;
}

.vmp-checkout .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.vmp-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.4;
	padding: 0;
	color: #24160a;
}

.vmp-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 50px;
	right: 8px;
}

.vmp-checkout .form-row.woocommerce-invalid input.input-text,
.vmp-checkout .form-row.woocommerce-invalid select {
	border-color: #b3452c;
}

.vmp-checkout .woocommerce-form__label-for-checkbox {
	flex-direction: row;
	align-items: center;
	gap: 9px;
	font-weight: 400;
}

.vmp-checkout .woocommerce-form__label-for-checkbox input {
	width: 17px;
	height: 17px;
	margin: 0;
}

/* Two-up rows on wider screens, matching WooCommerce's own field widths. */
@media (min-width: 768px) {
	.woocommerce .vmp-checkout .form-row-first,
	.woocommerce .vmp-checkout .form-row-last,
	.vmp-checkout .form-row-first,
	.vmp-checkout .form-row-last {
		display: inline-flex;
		width: calc(50% - 9px);
		vertical-align: top;
	}

	.vmp-checkout .form-row-first {
		margin-right: 14px;
	}
}

/* Order summary card */

.vmp-checkout-summary {
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 28px 26px 30px;
	position: sticky;
	top: 24px;
}

.woocommerce .vmp-checkout-summary table.shop_table,
.vmp-checkout-summary table.shop_table {
	width: 100%;
	border: none;
	border-radius: 0;
	border-collapse: collapse;
	margin: 0 0 22px;
	background: transparent;
}

.woocommerce .vmp-checkout-summary table.shop_table th,
.woocommerce .vmp-checkout-summary table.shop_table td,
.vmp-checkout-summary table.shop_table th,
.vmp-checkout-summary table.shop_table td {
	padding: 12px 0;
	border: none;
	border-bottom: 1px solid rgba(36, 22, 10, 0.1);
	font-size: 15px;
	font-weight: 400;
	color: #52504e;
	background: transparent;
	text-align: left;
}

.vmp-checkout-summary table.shop_table td {
	text-align: right;
	color: #24160a;
	white-space: nowrap;
}

.vmp-checkout-summary table.shop_table thead th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.vmp-checkout-summary .product-name {
	color: #24160a;
	line-height: 1.4;
}

.vmp-checkout-summary .product-quantity {
	color: #a08e7d;
}

.vmp-checkout-summary tfoot .order-total th,
.vmp-checkout-summary tfoot .order-total td {
	border-bottom: none;
	font-size: 20px;
	font-weight: 600;
	padding-top: 16px;
	color: #24160a;
}

.vmp-checkout-summary tfoot .order-total td {
	color: #de711e;
}

/* Payment box */

.woocommerce .vmp-checkout-summary #payment,
.vmp-checkout-summary #payment {
	background: transparent;
	border-radius: 0;
}

.woocommerce .vmp-checkout-summary #payment ul.payment_methods,
.vmp-checkout-summary #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 20px;
	padding: 0 0 18px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.1);
}

.vmp-checkout-summary #payment ul.payment_methods li {
	margin-bottom: 10px;
	font-size: 15px;
	color: #24160a;
}

.vmp-checkout-summary #payment ul.payment_methods li label {
	font-weight: 600;
	padding-left: 6px;
}

.woocommerce .vmp-checkout-summary #payment div.payment_box,
.vmp-checkout-summary #payment div.payment_box {
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	font-size: 14px;
	line-height: 26px;
	color: #52504e;
	margin: 10px 0 0;
	padding: 14px 16px;
}

.woocommerce .vmp-checkout-summary #payment div.payment_box::before,
.vmp-checkout-summary #payment div.payment_box::before {
	border-bottom-color: #fff;
}

.vmp-checkout-summary .woocommerce-terms-and-conditions-wrapper {
	font-size: 14px;
	line-height: 25px;
	color: #52504e;
	margin-bottom: 18px;
}

.woocommerce .vmp-checkout-summary #place_order,
.vmp-checkout-summary #place_order {
	display: block;
	width: 100%;
	background: #de711e;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 17px 24px;
	border: none;
	border-radius: 0;
	box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.5);
	float: none;
	transition: background 0.3s ease;
}

.woocommerce .vmp-checkout-summary #place_order:hover,
.vmp-checkout-summary #place_order:hover {
	background: #000;
	color: #fff;
}

/* Coupon and login prompts above the form */

.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login-toggle {
	margin-bottom: 22px;
}

.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout form.woocommerce-form-login {
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	padding: 24px;
	margin-bottom: 26px;
	background: #fdf6f1;
}

.woocommerce-checkout form.checkout_coupon .button,
.woocommerce-checkout form.woocommerce-form-login .button {
	background: #de711e;
	color: #fff;
	border-radius: 0;
}

/* Order received */

.woocommerce-order .woocommerce-thankyou-order-received {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 32px;
	color: #24160a;
	margin-bottom: 26px;
}

.woocommerce ul.order_details {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	list-style: none;
	margin: 0 0 34px;
	padding: 24px;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
}

.woocommerce ul.order_details li {
	border: none;
	margin: 0;
	padding: 0;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #a08e7d;
}

.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 6px;
	font-size: 17px;
	letter-spacing: 0;
	text-transform: none;
	color: #24160a;
}

/* ---------------------------------------------------------------
   Responsive, cart / checkout / detail
   --------------------------------------------------------------- */

@media (max-width: 1199px) {
	.vmp-cart,
	.vmp-checkout-grid {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 30px;
	}

	.vmp-single-summary .product_title {
		font-size: 36px;
	}
}

@media (max-width: 991px) {
	.vmp-cart,
	.vmp-checkout-grid {
		grid-template-columns: 1fr;
	}

	.vmp-cart-aside .cart_totals,
	.vmp-checkout-summary {
		position: static;
	}

	.vmp-single-summary {
		padding-left: 0;
		margin-top: 34px;
	}
}

@media (max-width: 767px) {
	.vmp-single-summary .product_title {
		font-size: 30px;
	}

	.vmp-single-summary .price {
		font-size: 25px;
	}

	/* The cart table becomes one card per line item. */
	.vmp-cart-table thead {
		display: none;
	}

	.woocommerce table.shop_table.vmp-cart-table,
	.vmp-cart-table,
	.vmp-cart-table tbody,
	.vmp-cart-table tr,
	.vmp-cart-table td {
		display: block;
		width: 100%;
	}

	.vmp-cart-table tr.woocommerce-cart-form__cart-item {
		position: relative;
		border-top: 1px solid rgba(36, 22, 10, 0.1);
		padding: 18px 14px 18px 108px;
		min-height: 118px;
	}

	.woocommerce table.shop_table.vmp-cart-table tr.woocommerce-cart-form__cart-item td,
	.vmp-cart-table tr.woocommerce-cart-form__cart-item td {
		border: none;
		padding: 0 0 8px;
		text-align: left;
	}

	/*
	 * WooCommerce's small screen stylesheet hides cart thumbnails outright. The
	 * card layout has room for one, so it is put back and pinned to the left.
	 */
	.woocommerce table.cart.vmp-cart-table td.product-thumbnail,
	.vmp-cart-table .product-thumbnail {
		display: block;
		position: absolute;
		left: 14px;
		top: 18px;
		width: 82px;
	}

	.vmp-cart-table .product-price::before,
	.vmp-cart-table .product-subtotal::before {
		content: attr(data-title) ": ";
		color: #a08e7d;
		font-size: 14px;
	}

	.vmp-cart-table .product-remove {
		position: absolute;
		top: 18px;
		right: 14px;
		width: auto;
		padding: 0;
	}

	.vmp-cart-table td.actions .coupon {
		display: flex;
		margin: 0 0 12px;
	}

	.vmp-cart-table td.actions .coupon input.input-text {
		width: 100%;
	}

	.woocommerce .vmp-cart-table td.actions button.button,
	.vmp-cart-table td.actions button.button {
		width: 100%;
	}

	.woocommerce .vmp-single-summary form.cart button.button,
	.vmp-single-summary form.cart button.button {
		min-width: 0;
		width: 100%;
	}
}

/* ---------------------------------------------------------------
   Product card buy row
   --------------------------------------------------------------- */

/*
 * Add to cart lives in the card body rather than in the hover overlay, so it is
 * reachable on a touch screen and visible without discovering it.
 */
.vmp-product-buy {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: auto;
}

.vmp-product-buy .vmp-product-price {
	margin: 0;
}

.woocommerce ul.products li.product .vmp-product-buy a.vmp-action,
.vmp-product-buy .vmp-action {
	position: static;
	opacity: 1;
	transform: none;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.14);
	color: #24160a;
	font-size: 0;
	border-radius: 0;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.woocommerce ul.products li.product .vmp-product-buy a.vmp-action:hover,
.woocommerce ul.products li.product .vmp-product-buy a.vmp-action:focus-visible,
.vmp-product-buy .vmp-action:hover,
.vmp-product-buy .vmp-action:focus-visible {
	background: #de711e;
	border-color: #de711e;
	color: #fff;
}

.vmp-product-buy .vmp-action svg {
	width: 20px;
	height: 20px;
}

/* The overlay now holds the view icon alone, so it centres on the image. */
.vmp-product-actions {
	justify-content: center;
}

/* ---------------------------------------------------------------
   My Account
   --------------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
}

.woocommerce-account .page-body .woocommerce {
	display: grid;
	grid-template-columns: 290px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

/*
 * Placed explicitly rather than left to source order: WooCommerce's own account
 * styles carry a float and an order on these two, and either one is enough to
 * land them in the wrong column.
 */
.woocommerce-account .page-body .woocommerce > .woocommerce-MyAccount-navigation {
	grid-column: 1;
	grid-row: 1;
	order: 0;
}

.woocommerce-account .page-body .woocommerce > .woocommerce-MyAccount-content {
	grid-column: 2;
	grid-row: 1;
	order: 0;
}

/* The login screen is a single centred block, not a two column account view. */
.woocommerce-account:not(.logged-in) .page-body .woocommerce {
	display: block;
}

/* Navigation card */

.vmp-account-nav {
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 26px 22px;
	position: sticky;
	top: 24px;
}

.vmp-account-user {
	display: flex;
	align-items: center;
	gap: 13px;
	padding-bottom: 20px;
	margin-bottom: 18px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
}

.vmp-account-avatar img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	display: block;
}

.vmp-account-user-copy {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.vmp-account-greeting {
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #a08e7d;
}

.vmp-account-name {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 21px;
	line-height: 1.2;
	color: #24160a;
	overflow-wrap: anywhere;
}

.woocommerce-account .vmp-account-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .vmp-account-nav li {
	margin: 0;
	padding: 0;
	border: none;
}

.woocommerce-account .vmp-account-nav li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	font-family: "Work Sans", sans-serif;
	font-size: 15px;
	color: #52504e;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
}

.woocommerce-account .vmp-account-nav li a svg {
	flex: 0 0 19px;
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.woocommerce-account .vmp-account-nav li a:hover {
	background: #fff;
	color: #de711e;
}

.woocommerce-account .vmp-account-nav li.is-active a {
	background: #de711e;
	color: #fff;
}

/* Dashboard */

.vmp-account-welcome h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 34px;
	color: #24160a;
	margin: 0 0 10px;
}

.vmp-account-welcome p {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
	margin-bottom: 32px;
}

.vmp-account-logout {
	color: #de711e;
	text-decoration: underline;
}

.vmp-account-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 36px;
}

.vmp-account-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 22px 20px 24px;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.12);
	text-decoration: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.vmp-account-card:hover {
	border-color: #de711e;
	box-shadow: 0 14px 30px rgba(36, 22, 10, 0.08);
	transform: translateY(-3px);
}

.vmp-account-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	background: #fdf6f1;
	margin-bottom: 4px;
}

.vmp-account-card-icon svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: #de711e;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.vmp-account-card-value {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 30px;
	line-height: 1;
	color: #24160a;
}

.vmp-account-card-label {
	font-size: 14px;
	color: #52504e;
}

.vmp-account-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 30px 32px;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
}

.vmp-account-cta h3 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 27px;
	color: #24160a;
	margin: 0 0 6px;
}

.vmp-account-cta p {
	font-size: 16px;
	line-height: 28px;
	color: #52504e;
	margin: 0;
}

/* The page body colours its links, which would tint the button's label. */
.vmp-account-cta .theme-btn,
.vmp-account-cta .theme-btn:hover {
	color: #fff;
}

/* Account tables and forms */

.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h3,
.woocommerce-account .woocommerce-MyAccount-content legend {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 27px;
	color: #24160a;
	margin: 0 0 20px;
}

.woocommerce-account .woocommerce-MyAccount-content > p {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
}

.woocommerce-account table.shop_table,
.woocommerce-account table.woocommerce-orders-table {
	width: 100%;
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	border-collapse: collapse;
}

.woocommerce-account table.shop_table th {
	background: #fdf6f1;
	font-family: "Work Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #52504e;
	padding: 15px 14px;
	text-align: left;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
}

.woocommerce-account table.shop_table td {
	padding: 16px 14px;
	border-top: 1px solid rgba(36, 22, 10, 0.1);
	font-size: 15px;
	color: #24160a;
}

.woocommerce-account table.shop_table td a:not(.button) {
	color: #de711e;
	text-decoration: none;
}

.woocommerce-account .woocommerce-Address {
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 24px 26px 26px;
}

.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
	margin-bottom: 12px;
}

.woocommerce-account .woocommerce-Address address {
	font-size: 16px;
	line-height: 30px;
	color: #52504e;
	font-style: normal;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0 0 18px;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row label {
	font-size: 14px;
	font-weight: 600;
	color: #24160a;
	margin-bottom: 7px;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row input.input-text,
.woocommerce-account .woocommerce-MyAccount-content .form-row select,
.woocommerce-account .woocommerce-MyAccount-content .select2-container .select2-selection--single {
	width: 100%;
	height: 52px;
	padding: 0 15px;
	border: 1px solid rgba(36, 22, 10, 0.2);
	border-radius: 0;
	background: #fff;
	font-family: "Work Sans", sans-serif;
	font-size: 16px;
	color: #24160a;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row input.input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content .form-row select:focus {
	outline: none;
	border-color: #de711e;
}

.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content button.button {
	background: #de711e;
	color: #fff;
	border: none;
	border-radius: 0;
	padding: 14px 26px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition: background 0.25s ease;
}

.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-MyAccount-content button.button:hover {
	background: #000;
	color: #fff;
}

/* ---------------------------------------------------------------
   Login and register
   --------------------------------------------------------------- */

.vmp-login {
	max-width: 1000px;
	margin: 0 auto;
}

.vmp-login--single {
	max-width: 520px;
}

.woocommerce .vmp-login-grid,
.vmp-login-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	align-items: start;
}

.vmp-login--single .vmp-login-grid {
	grid-template-columns: 1fr;
}

/*
 * Placed explicitly. These two carry WooCommerce's col2-set floats as well as
 * Bootstrap's .col-1 / .col-2 sizing, and left to themselves they land in the
 * wrong cells.
 */
.vmp-login-grid > .u-column1 {
	grid-column: 1;
	grid-row: 1;
	order: 0;
}

.vmp-login-grid > .u-column2 {
	grid-column: 2;
	grid-row: 1;
	order: 0;
}

.vmp-login--single .vmp-login-grid > .u-column1 {
	grid-column: 1;
}

.woocommerce .vmp-login-grid .vmp-login-card,
.vmp-login-card {
	width: 100%;
	float: none;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 34px 32px 36px;
}

.woocommerce .vmp-login-grid .vmp-login-card--register,
.vmp-login-card--register {
	background: #fdf6f1;
}

/*
 * WooCommerce draws its own bordered box around the login and register forms.
 * The card already is that box, so the inner one is stripped rather than nested.
 */
.woocommerce .vmp-login-card form.login,
.woocommerce .vmp-login-card form.register,
.vmp-login-card form.login,
.vmp-login-card form.register {
	border: none;
	border-radius: 0;
	margin: 0;
	padding: 0;
	background: transparent;
}

.woocommerce .vmp-login-card form .form-row .required {
	color: #de711e;
	border: none;
	text-decoration: none;
}

.woocommerce .vmp-login-card h2,
.vmp-login-card h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 30px;
	color: #24160a;
	margin: 0 0 8px;
}

.vmp-login-intro {
	font-size: 15px;
	line-height: 27px;
	color: #52504e;
	margin: 0 0 24px;
}

.woocommerce .vmp-login-card .form-row,
.vmp-login-card .form-row {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0 0 18px;
}

.woocommerce .vmp-login-card .form-row label,
.vmp-login-card .form-row label {
	font-size: 14px;
	font-weight: 600;
	color: #24160a;
	margin-bottom: 7px;
}

.woocommerce .vmp-login-card .required,
.vmp-login-card .required {
	color: #de711e;
	border: none;
	text-decoration: none;
}

.woocommerce .vmp-login-card input.input-text,
.vmp-login-card input.input-text {
	width: 100%;
	height: 52px;
	padding: 0 15px;
	border: 1px solid rgba(36, 22, 10, 0.2);
	border-radius: 0;
	background: #fff;
	font-family: "Work Sans", sans-serif;
	font-size: 16px;
	color: #24160a;
	transition: border-color 0.25s ease;
}

.vmp-login-card input.input-text:focus {
	outline: none;
	border-color: #de711e;
}

.vmp-login-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 22px;
}

.woocommerce .vmp-login-meta .woocommerce-form-login__rememberme,
.vmp-login-meta .woocommerce-form-login__rememberme {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	color: #52504e;
}

.vmp-login-meta input[type="checkbox"] {
	width: 17px;
	height: 17px;
	margin: 0;
}

.vmp-login-lost {
	font-size: 14px;
	color: #de711e;
	text-decoration: none;
}

.vmp-login-lost:hover {
	text-decoration: underline;
}

.vmp-login-note {
	font-size: 14px;
	line-height: 25px;
	color: #52504e;
	margin-bottom: 20px;
}

.woocommerce .vmp-login-actions,
.vmp-login-actions {
	margin: 0;
}

.woocommerce .vmp-login-card button.button,
.vmp-login-card button.button {
	width: 100%;
	background: #de711e;
	color: #fff;
	border: none;
	border-radius: 0;
	padding: 16px 24px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.5);
	transition: background 0.3s ease;
}

.woocommerce .vmp-login-card button.button:hover,
.vmp-login-card button.button:hover {
	background: #000;
	color: #fff;
}

/* Lost password sits on the same screen and shares the card. */
.woocommerce-account .woocommerce-ResetPassword {
	max-width: 520px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid rgba(36, 22, 10, 0.12);
	padding: 34px 32px 36px;
}

/* ---------------------------------------------------------------
   Responsive, account and login
   --------------------------------------------------------------- */

@media (max-width: 991px) {
	.woocommerce-account .page-body .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .page-body .woocommerce > .woocommerce-MyAccount-navigation,
	.woocommerce-account .page-body .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 1;
	}

	.woocommerce-account .page-body .woocommerce > .woocommerce-MyAccount-content {
		grid-row: 2;
	}

	.vmp-account-nav {
		position: static;
	}

	.vmp-account-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce .vmp-login-grid,
	.vmp-login-grid {
		grid-template-columns: 1fr;
	}

	.vmp-login-grid > .u-column1,
	.vmp-login-grid > .u-column2 {
		grid-column: 1;
	}

	.vmp-login-grid > .u-column2 {
		grid-row: 2;
	}
}

@media (max-width: 575px) {
	.vmp-account-cards {
		grid-template-columns: 1fr;
	}

	.vmp-account-welcome h2 {
		font-size: 27px;
	}

	.vmp-login-card {
		padding: 26px 22px 28px;
	}
}

/* ---------------------------------------------------------------
   Add to cart: loading, then "view cart"
   --------------------------------------------------------------- */

/*
 * WooCommerce's AJAX handler puts "loading" on the button while the request is
 * in flight, then "added" once it lands and appends its own "View cart" link
 * beside it. That gives three states with no extra JavaScript: idle cart icon,
 * spinner, then the view-cart icon in the same spot.
 */
.woocommerce ul.products li.product .vmp-product-buy a.vmp-action.loading,
.vmp-product-buy .vmp-action.loading {
	pointer-events: none;
	background: #fdf6f1;
	color: #de711e;
}

.vmp-product-buy .vmp-action.loading svg {
	animation: vmp-spin 0.8s linear infinite;
}

.woocommerce ul.products li.product .vmp-product-buy a.vmp-action.added,
.vmp-product-buy .vmp-action.added {
	display: none;
}

.woocommerce ul.products li.product .vmp-product-buy a.added_to_cart,
.vmp-product-buy .added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	background: #de711e;
	border: 1px solid #de711e;
	color: #fff;
	font-size: 0;
	line-height: 0;
	text-decoration: none;
	border-radius: 0;
	transition: background 0.25s ease, border-color 0.25s ease;
}

.woocommerce ul.products li.product .vmp-product-buy a.added_to_cart:hover,
.vmp-product-buy .added_to_cart:hover {
	background: #24160a;
	border-color: #24160a;
	color: #fff;
}

/* The label is kept for screen readers; sighted users get the icon. */
.vmp-product-buy .added_to_cart::after {
	content: "";
	width: 21px;
	height: 21px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.6 8.2a2 2 0 0 1-2 1.6H9.2a2 2 0 0 1-2-1.6L5.2 3.4A1 1 0 0 0 4.2 2.6H2'/%3E%3Ccircle cx='9.5' cy='20' r='1.6'/%3E%3Ccircle cx='17.5' cy='20' r='1.6'/%3E%3Cpath d='m10 9.4 1.9 1.9 3.8-3.8'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.6 8.2a2 2 0 0 1-2 1.6H9.2a2 2 0 0 1-2-1.6L5.2 3.4A1 1 0 0 0 4.2 2.6H2'/%3E%3Ccircle cx='9.5' cy='20' r='1.6'/%3E%3Ccircle cx='17.5' cy='20' r='1.6'/%3E%3Cpath d='m10 9.4 1.9 1.9 3.8-3.8'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ---------------------------------------------------------------
   Order confirmation
   --------------------------------------------------------------- */

.vmp-thankyou-head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 38px;
}

.vmp-thankyou-tick {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin-bottom: 20px;
	background: #fdf6f1;
	border-radius: 50%;
}

.vmp-thankyou-tick svg {
	width: 36px;
	height: 36px;
	fill: none;
	stroke: #de711e;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.woocommerce .vmp-thankyou-head h2,
.vmp-thankyou-head h2 {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 38px;
	line-height: 1.2;
	color: #24160a;
	margin: 0 0 12px;
	background: none;
	border: none;
	padding: 0;
}

.woocommerce .vmp-thankyou-head h2::before {
	display: none;
}

.vmp-thankyou-head p {
	font-size: 17px;
	line-height: 32px;
	color: #52504e;
	margin: 0;
}

.vmp-thankyou-head--failed .vmp-thankyou-head h2,
.vmp-thankyou-head--failed h2 {
	color: #b3452c;
}

/* Overview strip */

.woocommerce .vmp-thankyou ul.order_details,
.vmp-thankyou ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 0;
	list-style: none;
	margin: 0 0 44px;
	padding: 0;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
}

/*
 * WooCommerce adds a clearfix to this list for its own floated layout. In a grid
 * container those two pseudo elements become cells of their own, which shunts
 * every real cell one place along and leaves a blank column at the start.
 */
.woocommerce .vmp-thankyou ul.order_details::before,
.woocommerce .vmp-thankyou ul.order_details::after,
.vmp-thankyou ul.order_details::before,
.vmp-thankyou ul.order_details::after {
	display: none;
}

.woocommerce .vmp-thankyou ul.order_details li,
.vmp-thankyou ul.order_details li {
	margin: 0;
	padding: 22px 24px;
	border: none;
	border-left: 1px solid rgba(36, 22, 10, 0.1);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #a08e7d;
	float: none;
	/* An email address is one unbroken word and would otherwise run into the
	   next cell rather than wrap inside its own. */
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.vmp-thankyou ul.order_details li:first-child {
	border-left: none;
}

.woocommerce .vmp-thankyou ul.order_details li strong,
.vmp-thankyou ul.order_details li strong {
	display: block;
	margin-top: 7px;
	font-family: "Work Sans", sans-serif;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #24160a;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Order table and customer details */

.vmp-thankyou .woocommerce-order-details,
.vmp-thankyou .woocommerce-customer-details {
	margin-bottom: 40px;
}

.woocommerce .vmp-thankyou .woocommerce-order-details__title,
.woocommerce .vmp-thankyou .woocommerce-column__title,
.vmp-thankyou .woocommerce-order-details__title,
.vmp-thankyou .woocommerce-column__title {
	font-family: var(--headingFont, "elyarisregular", serif);
	font-size: 27px;
	color: #24160a;
	margin: 0 0 18px;
}

.woocommerce .vmp-thankyou table.shop_table,
.vmp-thankyou table.shop_table {
	width: 100%;
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	border-collapse: collapse;
	margin: 0;
}

.woocommerce .vmp-thankyou table.shop_table th,
.vmp-thankyou table.shop_table th {
	background: #fdf6f1;
	font-family: "Work Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #52504e;
	text-align: left;
	padding: 15px 16px;
	border-bottom: 1px solid rgba(36, 22, 10, 0.12);
}

.woocommerce .vmp-thankyou table.shop_table td,
.vmp-thankyou table.shop_table td {
	padding: 16px;
	border-top: 1px solid rgba(36, 22, 10, 0.1);
	font-size: 16px;
	color: #24160a;
	vertical-align: top;
}

.vmp-thankyou table.shop_table td.product-total,
.vmp-thankyou table.shop_table th.product-total,
.vmp-thankyou table.shop_table tfoot td {
	text-align: right;
	white-space: nowrap;
}

.vmp-thankyou table.shop_table .product-name a {
	color: #24160a;
	text-decoration: none;
}

.vmp-thankyou table.shop_table .product-name a:hover {
	color: #de711e;
}

.woocommerce .vmp-thankyou table.shop_table tfoot th,
.vmp-thankyou table.shop_table tfoot th {
	background: transparent;
	font-family: "Work Sans", sans-serif;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	border-bottom: none;
	border-top: 1px solid rgba(36, 22, 10, 0.1);
	color: #52504e;
}

.vmp-thankyou table.shop_table tfoot tr:last-child th,
.vmp-thankyou table.shop_table tfoot tr:last-child td {
	font-size: 19px;
	font-weight: 600;
	color: #24160a;
}

.vmp-thankyou table.shop_table tfoot tr:last-child td {
	color: #de711e;
}

.vmp-thankyou .woocommerce-customer-details address {
	font-style: normal;
	font-size: 16px;
	line-height: 30px;
	color: #52504e;
	background: #fdf6f1;
	border: 1px solid rgba(36, 22, 10, 0.12);
	border-radius: 0;
	padding: 22px 24px;
}

/* Actions */

.vmp-thankyou-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	padding-top: 8px;
}

.vmp-thankyou-actions .theme-btn,
.vmp-thankyou-actions .theme-btn:hover,
.woocommerce-thankyou-order-failed-actions .theme-btn,
.woocommerce-thankyou-order-failed-actions .theme-btn:hover {
	color: #fff;
}

.vmp-thankyou-link {
	font-size: 16px;
	color: #de711e;
	text-decoration: none;
}

.vmp-thankyou-link:hover {
	text-decoration: underline;
}

@media (max-width: 575px) {
	.vmp-thankyou-head h2 {
		font-size: 28px;
	}

	.woocommerce .vmp-thankyou ul.order_details li,
	.vmp-thankyou ul.order_details li {
		border-left: none;
		border-top: 1px solid rgba(36, 22, 10, 0.1);
	}

	.vmp-thankyou ul.order_details li:first-child {
		border-top: none;
	}
}
