/* =========================================================
   JM FENCING & LANDSCAPING LTD
   COMPLETE CLEANED CUSTOM CSS
   Themify Ultra + WooCommerce
   Updated: 25 August 2026

   REPLACE the existing custom CSS with this complete file.

   SECTION ORDER
   01. Basket button and slide-out basket
   02. Checkout page
   03. Checkout basket editing and product modal
   04. Cart / basket page
   05. Individual product pages
   06. Related and upsell products
   07. Shop and product archive pages
   08. Quick view and shop corrections
   09. Empty basket styling
   10. Floating contact leaf
   11. Custom WooCommerce product cards
   12. Header shop and basket buttons
   13. CookieYes styling
   14. Final variable-product controls
   15. Delivery row slide-down map panel

   CLEAN-UP NOTES
   - Removed a duplicated Related Products responsive section.
   - Consolidated the latest variable-product spacing rules.
   - Added the full-width Load size selector correction.
   - Reduced repeated blank lines while preserving cascade order.
   - Retained later override sections where their order is deliberate.
   - Added the responsive 10-mile delivery map panel and subtle map animations.
   ========================================================= */


/* =========================================================
   JM CUSTOM BASKET BUTTON AND DRAWER
   Complete replacement CSS
   ========================================================= */


/* =========================================================
   MAIN BASKET BUTTON
   ========================================================= */

.jm-basket-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;

	padding: 12px 22px;

	background: #9fbe7b;
	color: #ffffff;

	border: 1px solid rgba(36, 84, 35, 0.18);
	border-radius: 14px;

	font-size: 16px;
	font-weight: 700;
	line-height: 1.15;

	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


.jm-basket-button:hover,
.jm-basket-button:focus,
.jm-basket-button:focus-visible {
	background: #8eae69;
	color: #ffffff;

	border-color: rgba(36, 84, 35, 0.28);

	text-decoration: none;

	transform: translateY(-1px);

	box-shadow: 0 5px 14px rgba(31, 82, 36, 0.14);

	outline: none;
}


.jm-basket-button:visited,
.jm-basket-button:active {
	color: #ffffff;
}


/* =========================================================
   BASKET BUTTON ICON
   ========================================================= */

.jm-basket-button__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 34px;
	height: 34px;
}


.jm-basket-button__icon img {
	display: block;

	width: 34px;
	height: 34px;

	max-width: none;

	object-fit: contain;

	border: 0;
	box-shadow: none;
}


/* =========================================================
   BASKET BUTTON TEXT
   ========================================================= */

.jm-basket-button__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;

	gap: 3px;

	color: #ffffff;
	text-align: left;
}


.jm-basket-button__label {
	display: block;

	color: #ffffff;

	font-size: 18px;
	font-weight: 700;
	line-height: 1.05;
}


.jm-basket-button__details {
	display: block;

	color: #ffffff;

	font-size: 14px;
	font-weight: 500;
	line-height: 1.1;

	opacity: 0.95;
}


.jm-basket-button span,
.jm-basket-button strong,
.jm-basket-button small,
.jm-basket-button .amount,
.jm-basket-button .woocommerce-Price-amount,
.jm-basket-button .woocommerce-Price-currencySymbol {
	color: #ffffff;
}


/* =========================================================
   EMPTY AND FILLED BUTTON STATES
   ========================================================= */

.jm-basket-button--empty {
	background: #9fbe7b;
}


.jm-basket-button--empty:hover,
.jm-basket-button--empty:focus {
	background: #8eae69;
}


.jm-basket-button--has-items {
	background: #8fb468;

	border-color: rgba(36, 84, 35, 0.24);
}


.jm-basket-button--has-items:hover,
.jm-basket-button--has-items:focus {
	background: #7ea456;
}


/* =========================================================
   THEMIFY FIXES
   ========================================================= */

.module-text .jm-basket-button,
.module-buttons .jm-basket-button,
.builder_row .jm-basket-button {
	margin: 0;
}


.jm-basket-button p,
.jm-basket-button span p {
	margin: 0;
	padding: 0;
}


/* =========================================================
   STOP BACKGROUND PAGE SCROLLING
   ========================================================= */

body.jm-cart-drawer-open {
	overflow: hidden;

	touch-action: none;
}


/* =========================================================
   DRAWER CONTAINER
   ========================================================= */

.jm-cart-drawer {
	position: fixed;
	inset: 0;

	z-index: 999999;

	visibility: hidden;
	pointer-events: none;
}


.jm-cart-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
}


/* =========================================================
   DARK OVERLAY
   ========================================================= */

.jm-cart-drawer__overlay {
	position: absolute;
	inset: 0;

	background: rgba(19, 27, 20, 0.58);

	opacity: 0;

	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);

	transition: opacity 0.28s ease;
}


.jm-cart-drawer.is-open .jm-cart-drawer__overlay {
	opacity: 1;
}


/* =========================================================
   DRAWER PANEL
   ========================================================= */

.jm-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;

	display: flex;
	flex-direction: column;

	width: min(500px, 94vw);
	max-width: 100%;

	min-height: 0;

	background: #ffffff;
	color: #263226;

	box-shadow: -18px 0 42px rgba(18, 28, 20, 0.22);

	transform: translateX(105%);

	transition: transform 0.3s ease;
}


.jm-cart-drawer.is-open .jm-cart-drawer__panel {
	transform: translateX(0);
}


/* =========================================================
   DRAWER HEADER
   ========================================================= */

.jm-cart-drawer__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;

	flex: 0 0 auto;

	padding: 22px 22px 18px;

	background: #f5f3ec;

	border-bottom: 1px solid #dfe5da;
}


.jm-cart-drawer__heading {
	min-width: 0;
}


.jm-cart-drawer__heading h2 {
	margin: 0 0 5px;

	color: #176b2b;

	font-size: 27px;
	font-weight: 700;
	line-height: 1.1;
}


.jm-cart-drawer__heading p {
	margin: 0;

	color: #566054;

	font-size: 14px;
	line-height: 1.4;
}


/* =========================================================
   MAIN CLOSE BUTTON
   ========================================================= */

.jm-cart-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 42px;
	height: 42px;
	padding: 0;

	background: #176b2b;
	color: #ffffff;

	border: 1px solid #176b2b;
	border-radius: 11px;

	font-family: Arial, sans-serif;
	font-size: 30px;
	font-weight: 300;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}


.jm-cart-drawer__close:hover,
.jm-cart-drawer__close:focus {
	background: #105a22;
	color: #ffffff;

	transform: scale(1.03);

	outline: none;
}


/* =========================================================
   SCROLLABLE DRAWER BODY
   ========================================================= */

.jm-cart-drawer__body {
	position: relative;

	flex: 1 1 auto;

	min-height: 0;

	padding: 18px 22px 34px;

	overflow-x: hidden;
	overflow-y: auto;

	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;

	background: #ffffff;

	transition: opacity 0.18s ease;
}


.jm-cart-drawer__body.is-updating {
	opacity: 0.55;

	pointer-events: none;
}


.jm-cart-drawer__body.is-updating::after {
	position: absolute;
	top: 25px;
	right: 25px;

	width: 22px;
	height: 22px;

	content: "";

	border: 3px solid #dce5d5;
	border-top-color: #176b2b;
	border-radius: 50%;

	animation: jm-cart-spin 0.75s linear infinite;
}


@keyframes jm-cart-spin {

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


/* =========================================================
   PRODUCT LIST
   ========================================================= */

.jm-cart-items {
	display: flex;
	flex-direction: column;

	margin: 0;
	padding: 0;
}


/* =========================================================
   INDIVIDUAL PRODUCT
   ========================================================= */

.jm-cart-item {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 15px;

	margin: 0;
	padding: 18px 0;

	border-bottom: 1px solid #e1e7dd;
}


.jm-cart-item:first-child {
	padding-top: 8px;
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

.jm-cart-item__image {
	width: 86px;
}


.jm-cart-item__image a {
	display: block;
}


.jm-cart-item__image img {
	display: block;

	width: 86px;
	height: 86px;

	object-fit: cover;

	background: #f5f3ec;

	border: 0;
	border-radius: 12px;

	box-shadow: none;
}


/* =========================================================
   PRODUCT INFORMATION
   ========================================================= */

.jm-cart-item__information {
	min-width: 0;
}


.jm-cart-item__heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}


.jm-cart-item__name {
	display: block;

	min-width: 0;

	color: #263226;

	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;

	text-decoration: none;

	overflow-wrap: anywhere;
}


a.jm-cart-item__name:hover,
a.jm-cart-item__name:focus {
	color: #176b2b;

	text-decoration: none;
}


/* =========================================================
   REMOVE PRODUCT BUTTON
   ========================================================= */

.jm-cart-item__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 27px;
	height: 27px;
	padding: 0;

	background: #f4f6f2;
	color: #647060;

	border: 1px solid #d8e0d4;
	border-radius: 8px;

	font-family: Arial, sans-serif;
	font-size: 19px;
	font-weight: 400;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;
}


.jm-cart-item__remove:hover,
.jm-cart-item__remove:focus {
	background: #176b2b;
	color: #ffffff;

	border-color: #176b2b;

	outline: none;
}


/* =========================================================
   PRODUCT VARIATION DETAILS
   ========================================================= */

.jm-cart-item__details {
	margin-top: 5px;

	color: #657062;

	font-size: 12px;
	line-height: 1.4;
}


.jm-cart-item__details dl,
.jm-cart-item__details p {
	margin: 0;
}


/* =========================================================
   QUANTITY AND PRODUCT SUBTOTAL ROW
   ========================================================= */

.jm-cart-item__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;

	margin-top: 14px;
}


/* =========================================================
   QUANTITY SELECTOR
   ========================================================= */

.jm-cart-quantity {
	display: inline-grid;
	grid-template-columns: 34px 42px 34px;
	align-items: center;

	flex: 0 0 auto;

	height: 38px;

	background: #ffffff;

	border: 1px solid #cfdbca;
	border-radius: 10px;

	overflow: hidden;
}


.jm-cart-quantity__button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 34px;
	height: 36px;
	padding: 0;

	background: #f3f6f0;
	color: #176b2b;

	border: 0;
	border-radius: 0;

	font-family: Arial, sans-serif;
	font-size: 19px;
	font-weight: 500;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;
}


.jm-cart-quantity__button:hover,
.jm-cart-quantity__button:focus {
	background: #dfead7;
	color: #104f20;

	outline: none;
}


.jm-cart-quantity__button:disabled {
	opacity: 0.35;

	cursor: not-allowed;
}


.jm-cart-quantity__input {
	display: block;

	width: 42px;
	height: 36px;
	margin: 0;
	padding: 0 3px;

	background: #ffffff;
	color: #263226;

	border: 0;
	border-left: 1px solid #d9e2d5;
	border-right: 1px solid #d9e2d5;
	border-radius: 0;

	font-size: 14px;
	font-weight: 700;
	line-height: 36px;
	text-align: center;

	box-shadow: none;
	appearance: textfield;
	-moz-appearance: textfield;
}


.jm-cart-quantity__input::-webkit-inner-spin-button,
.jm-cart-quantity__input::-webkit-outer-spin-button {
	margin: 0;

	appearance: none;
	-webkit-appearance: none;
}


.jm-cart-quantity__input:focus {
	outline: 2px solid #9fbe7b;
	outline-offset: -2px;
}


/* =========================================================
   PRODUCT SUBTOTAL
   ========================================================= */

.jm-cart-item__subtotal {
	color: #176b2b;

	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;

	white-space: nowrap;
}


/* =========================================================
   BASKET SUMMARY
   ========================================================= */

.jm-cart-summary {
	margin-top: 25px;
	padding-top: 20px;

	border-top: 2px solid #d9e3d3;
}


.jm-cart-summary__subtotal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;

	padding: 0 0 18px;

	color: #263226;

	font-size: 18px;
	line-height: 1.3;
}


.jm-cart-summary__subtotal span {
	font-weight: 700;
}


.jm-cart-summary__subtotal strong {
	color: #176b2b;

	font-size: 22px;
	font-weight: 700;

	white-space: nowrap;
}


/* =========================================================
   BASKET AND CHECKOUT BUTTONS
   ========================================================= */

.jm-cart-summary__buttons {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}


.jm-cart-summary__button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 48px;

	padding: 12px 18px;

	border-radius: 12px;

	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;

	box-shadow: none;
}


.jm-cart-summary__button--basket {
	background: #eef3e9;
	color: #176b2b;

	border: 1px solid #cad8c0;
}


.jm-cart-summary__button--basket:hover,
.jm-cart-summary__button--basket:focus {
	background: #dfead7;
	color: #145b25;

	text-decoration: none;

	outline: none;
}


.jm-cart-summary__button--checkout {
	background: #8fb468;
	color: #ffffff;

	border: 1px solid #8fb468;
}


.jm-cart-summary__button--checkout:hover,
.jm-cart-summary__button--checkout:focus {
	background: #7ea456;
	color: #ffffff;

	border-color: #7ea456;

	text-decoration: none;

	outline: none;
}


/* =========================================================
   UPDATE STATUS
   ========================================================= */

.jm-cart-update-status {
	min-height: 18px;

	margin-top: 10px;

	color: #50604d;

	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}


.jm-cart-update-status.is-error {
	color: #a32626;
}


/* =========================================================
   EMPTY BASKET
   ========================================================= */

.jm-cart-empty {
	margin: 20px 0;
	padding: 30px 20px;

	background: #f5f3ec;

	border: 1px solid #dfe6d9;
	border-radius: 15px;

	text-align: center;
}


.jm-cart-empty__title {
	margin: 0 0 8px;

	color: #176b2b;

	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
}


.jm-cart-empty__text {
	margin: 0 0 20px;

	color: #4d594b;

	font-size: 15px;
	line-height: 1.55;
}


.jm-cart-empty__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 44px;

	padding: 10px 18px;

	background: #8fb468;
	color: #ffffff;

	border: 1px solid #8fb468;
	border-radius: 11px;

	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}


.jm-cart-empty__button:hover,
.jm-cart-empty__button:focus {
	background: #7ea456;
	color: #ffffff;

	text-decoration: none;
}


/* =========================================================
   DRAWER FOOTER
   ========================================================= */

.jm-cart-drawer__footer {
	flex: 0 0 auto;

	padding: 13px 22px 17px;

	background: #f5f3ec;

	border-top: 1px solid #dfe5da;

	box-shadow: 0 -5px 16px rgba(35, 52, 34, 0.06);
}


.jm-cart-drawer__secure-message {
	margin: 0 0 9px;

	color: #50604d;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
}


.jm-cart-drawer__continue {
	display: block;

	width: 100%;
	min-height: 42px;

	padding: 9px 16px;

	background: transparent;
	color: #176b2b;

	border: 1px solid #bfcdb7;
	border-radius: 11px;

	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;

	cursor: pointer;

	box-shadow: none;
}


.jm-cart-drawer__continue:hover,
.jm-cart-drawer__continue:focus {
	background: #ffffff;
	color: #104f20;

	border-color: #aebfa5;

	outline: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1024px) {

	.jm-basket-button {
		gap: 10px;

		padding: 11px 18px;

		border-radius: 12px;
	}

	.jm-basket-button__icon,
	.jm-basket-button__icon img {
		width: 30px;
		height: 30px;
	}

	.jm-basket-button__label {
		font-size: 16px;
	}

	.jm-basket-button__details {
		font-size: 13px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	.jm-basket-button {
		gap: 7px;

		min-width: 0;

		padding: 8px 12px;

		border-radius: 12px;

		font-size: 13px;
		line-height: 1;
	}

	.jm-basket-button__icon,
	.jm-basket-button__icon img {
		width: 22px;
		height: 22px;
	}

	.jm-basket-button__text {
		display: block;

		line-height: 1;
	}

	.jm-basket-button__label {
		font-size: 0;
		line-height: 1;
	}

	.jm-basket-button__label::after {
		display: inline-block;

		content: "Basket";

		color: #ffffff;

		font-size: 13px;
		font-weight: 700;
		line-height: 1;
	}

	.jm-basket-button__details {
		display: none;
	}


	.jm-cart-drawer__panel {
		width: min(450px, 96vw);
	}


	.jm-cart-drawer__header {
		align-items: center;

		padding: 16px 16px 14px;
	}


	.jm-cart-drawer__heading h2 {
		margin-bottom: 3px;

		font-size: 23px;
	}


	.jm-cart-drawer__heading p {
		font-size: 13px;
	}


	.jm-cart-drawer__close {
		width: 38px;
		height: 38px;

		border-radius: 10px;

		font-size: 27px;
	}


	.jm-cart-drawer__body {
		padding: 12px 16px 28px;
	}


	.jm-cart-item {
		grid-template-columns: 74px minmax(0, 1fr);

		gap: 12px;

		padding: 15px 0;
	}


	.jm-cart-item__image,
	.jm-cart-item__image img {
		width: 74px;
	}


	.jm-cart-item__image img {
		height: 74px;

		border-radius: 10px;
	}


	.jm-cart-item__name {
		font-size: 14px;
		line-height: 1.32;
	}


	.jm-cart-item__remove {
		width: 25px;
		height: 25px;

		border-radius: 7px;

		font-size: 17px;
	}


	.jm-cart-item__bottom {
		gap: 10px;

		margin-top: 12px;
	}


	.jm-cart-quantity {
		grid-template-columns: 31px 38px 31px;

		height: 36px;
	}


	.jm-cart-quantity__button {
		width: 31px;
		height: 34px;

		font-size: 17px;
	}


	.jm-cart-quantity__input {
		width: 38px;
		height: 34px;

		font-size: 13px;
		line-height: 34px;
	}


	.jm-cart-item__subtotal {
		font-size: 15px;
	}


	.jm-cart-summary__subtotal {
		font-size: 16px;
	}


	.jm-cart-summary__subtotal strong {
		font-size: 19px;
	}


	.jm-cart-drawer__footer {
		padding: 11px 16px 14px;
	}


	.jm-cart-drawer__secure-message {
		margin-bottom: 8px;

		font-size: 12px;
	}


	.jm-cart-drawer__continue {
		min-height: 40px;

		padding: 8px 14px;

		font-size: 13px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 420px) {

	.jm-basket-button {
		gap: 6px;

		padding: 7px 10px;

		border-radius: 10px;
	}


	.jm-basket-button__icon,
	.jm-basket-button__icon img {
		width: 20px;
		height: 20px;
	}


	.jm-basket-button__label::after {
		font-size: 12px;
	}


	.jm-cart-drawer__panel {
		width: 100vw;
	}


	.jm-cart-drawer__heading p {
		display: none;
	}


	.jm-cart-drawer__heading h2 {
		font-size: 21px;
	}


	.jm-cart-item {
		grid-template-columns: 66px minmax(0, 1fr);

		gap: 10px;
	}


	.jm-cart-item__image,
	.jm-cart-item__image img {
		width: 66px;
	}


	.jm-cart-item__image img {
		height: 66px;
	}


	.jm-cart-item__bottom {
		align-items: flex-end;
		flex-direction: column;

		gap: 9px;
	}


	.jm-cart-quantity {
		align-self: flex-start;
	}


	.jm-cart-item__subtotal {
		align-self: flex-end;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.jm-basket-button,
	.jm-cart-drawer__overlay,
	.jm-cart-drawer__panel,
	.jm-cart-drawer__close,
	.jm-cart-drawer__continue,
	.jm-cart-summary__button {
		transition: none !important;

		transform: none;
	}
}


/* =========================================================
   JM WOOCOMMERCE CHECKOUT
   Complete replacement Checkout Block CSS
   ========================================================= */


/* =========================================================
   CHECKOUT PAGE AND CONTENT AREA
   ========================================================= */

body.woocommerce-checkout {
	background: #f7f8f4;
	color: #263226;
}


body.woocommerce-checkout #pagewrap,
body.woocommerce-checkout #body,
body.woocommerce-checkout #layout,
body.woocommerce-checkout #content {
	background: #f7f8f4;
}


body.woocommerce-checkout #layout {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}


body.woocommerce-checkout #content {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}


/* Remove unwanted WooCommerce page sidebar */

body.woocommerce-checkout #sidebar {
	display: none !important;
}


/* Keep any inserted floating header above Checkout */

body.woocommerce-checkout .themify_builder_content:first-child,
body.woocommerce-checkout .module-layout-part:first-child {
	position: relative;
	z-index: 1000;
}


/* Checkout block width */

body.woocommerce-checkout .wp-block-woocommerce-checkout {
	width: calc(100% - 48px);
	max-width: 1380px;

	margin: 0 auto;
	padding: 44px 0 80px;
}


/* =========================================================
   TWO-COLUMN CHECKOUT LAYOUT
   ========================================================= */

body.woocommerce-checkout
.wp-block-woocommerce-checkout
.wc-block-checkout {
	display: grid;
	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(340px, 0.85fr);
	gap: 38px;

	align-items: start;
}


body.woocommerce-checkout
.wp-block-woocommerce-checkout
.wc-block-checkout__main {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
}


body.woocommerce-checkout
.wp-block-woocommerce-checkout
.wc-block-checkout__sidebar {
	position: sticky;
	top: 28px;

	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;

	background: transparent;
}


/* =========================================================
   GENERAL BOX SIZING
   ========================================================= */

body.woocommerce-checkout
.wp-block-woocommerce-checkout *,
body.woocommerce-checkout
.wp-block-woocommerce-checkout *::before,
body.woocommerce-checkout
.wp-block-woocommerce-checkout *::after {
	box-sizing: border-box;
}


/* =========================================================
   PAGE AND SECTION HEADINGS
   ========================================================= */

body.woocommerce-checkout
.wp-block-woocommerce-checkout
h1,
body.woocommerce-checkout
.wp-block-woocommerce-checkout
.wp-block-post-title {
	margin: 0 0 28px;

	color: #176b2b;

	font-size: clamp(34px, 4vw, 54px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.025em;
}


body.woocommerce-checkout
.wc-block-components-checkout-step__title,
body.woocommerce-checkout
.wc-block-components-title {
	margin: 0;

	color: #263226;

	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}


body.woocommerce-checkout
.wc-block-components-checkout-step__description {
	margin: 7px 0 0;

	color: #657062;

	font-size: 14px;
	line-height: 1.5;
}


/* =========================================================
   MAIN CHECKOUT SECTIONS
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__main
.wc-block-components-checkout-step {
	margin: 0 0 22px;
	padding: 26px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);
}


body.woocommerce-checkout
.wc-block-components-checkout-step__heading {
	margin: 0 0 22px;
}


body.woocommerce-checkout
.wc-block-components-checkout-step__container,
body.woocommerce-checkout
.wc-block-components-checkout-step__content {
	margin: 0;
	padding: 0;
}


/* =========================================================
   FORM LABELS
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-text-input label,
body.woocommerce-checkout
.wc-block-components-combobox-control label,
body.woocommerce-checkout
.wc-block-components-form label {
	color: #4c5949;

	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
}


/* =========================================================
   NORMAL TEXT FIELDS ONLY
   This deliberately excludes checkboxes and radio buttons
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-text-input
input:not([type="checkbox"]):not([type="radio"]),

body.woocommerce-checkout
.wc-block-components-combobox-control
input:not([type="checkbox"]):not([type="radio"]),

body.woocommerce-checkout
.wc-block-components-form
input[type="text"],

body.woocommerce-checkout
.wc-block-components-form
input[type="email"],

body.woocommerce-checkout
.wc-block-components-form
input[type="tel"],

body.woocommerce-checkout
.wc-block-components-form
input[type="number"],

body.woocommerce-checkout
.wc-block-components-form
input[type="password"],

body.woocommerce-checkout
.wc-block-components-form
textarea,

body.woocommerce-checkout
.wc-block-components-form
select {
	width: 100%;
	min-height: 54px;

	margin: 0;
	padding: 17px 16px 9px;

	background: #fbfcfa;
	color: #263226;

	border: 1px solid #ced9c9;
	border-radius: 11px;

	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;

	box-shadow: none;

	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}


body.woocommerce-checkout
.wc-block-components-form
textarea {
	min-height: 110px;
	padding-top: 15px;

	resize: vertical;
}


/* Normal field focus */

body.woocommerce-checkout
.wc-block-components-text-input
input:not([type="checkbox"]):not([type="radio"]):focus,

body.woocommerce-checkout
.wc-block-components-combobox-control
input:not([type="checkbox"]):not([type="radio"]):focus,

body.woocommerce-checkout
.wc-block-components-form
input[type="text"]:focus,

body.woocommerce-checkout
.wc-block-components-form
input[type="email"]:focus,

body.woocommerce-checkout
.wc-block-components-form
input[type="tel"]:focus,

body.woocommerce-checkout
.wc-block-components-form
input[type="number"]:focus,

body.woocommerce-checkout
.wc-block-components-form
input[type="password"]:focus,

body.woocommerce-checkout
.wc-block-components-form
textarea:focus,

body.woocommerce-checkout
.wc-block-components-form
select:focus {
	background: #ffffff;

	border-color: #8fb468;

	box-shadow: 0 0 0 3px rgba(143, 180, 104, 0.18);

	outline: none;
}


/* =========================================================
   COUNTRY / REGION COMBOBOX
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-combobox {
	position: relative;

	width: 100%;
	min-height: 58px;
}


body.woocommerce-checkout
.wc-block-components-combobox-control {
	position: relative;

	width: 100%;
	min-height: 58px;
}


body.woocommerce-checkout
.wc-block-components-combobox-control
.components-base-control,
body.woocommerce-checkout
.wc-block-components-combobox-control
.components-base-control__field,
body.woocommerce-checkout
.wc-block-components-combobox-control
.components-combobox-control {
	width: 100%;
	min-height: 58px;
	margin: 0;
}


body.woocommerce-checkout
.wc-block-components-combobox-control
input {
	height: 58px;
	min-height: 58px;

	padding: 22px 46px 8px 16px !important;

	line-height: 1.25;
}


body.woocommerce-checkout
.wc-block-components-combobox-control
label {
	position: absolute;
	top: 8px;
	left: 16px;

	z-index: 2;

	margin: 0;

	color: #657062;

	font-size: 12px;
	font-weight: 600;
	line-height: 1;

	pointer-events: none;

	transform: none !important;
}


body.woocommerce-checkout
.wc-block-components-combobox-control
.wc-block-components-combobox-control__button,
body.woocommerce-checkout
.wc-block-components-combobox-control
.components-combobox-control__suggestions-container {
	right: 14px;
}


/* =========================================================
   CHECKBOXES
   Prevent stretched or elongated tick boxes
   ========================================================= */

body.woocommerce-checkout
input[type="checkbox"].wc-block-components-checkbox__input,
body.woocommerce-checkout
.wc-block-components-checkbox
input[type="checkbox"],
body.woocommerce-checkout
.wc-block-checkout
input[type="checkbox"] {
	display: inline-block;

	flex: 0 0 22px;

	width: 22px !important;
	min-width: 22px !important;
	max-width: 22px !important;

	height: 22px !important;
	min-height: 22px !important;
	max-height: 22px !important;

	aspect-ratio: 1 / 1;

	margin: 1px 12px 0 0 !important;
	padding: 0 !important;

	background: #ffffff;

	border: 1.5px solid #9da89a;
	border-radius: 5px;

	vertical-align: top;

	box-shadow: none;
}


body.woocommerce-checkout
.wc-block-components-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0;

	width: 100%;
}


body.woocommerce-checkout
.wc-block-components-checkbox__label {
	flex: 1 1 auto;

	min-width: 0;

	color: #3f4b3d;

	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
}


/* =========================================================
   RADIO BUTTONS
   Prevent tall oval payment controls
   ========================================================= */

body.woocommerce-checkout
input[type="radio"].wc-block-components-radio-control__input,
body.woocommerce-checkout
.wc-block-components-radio-control
input[type="radio"],
body.woocommerce-checkout
.wc-block-checkout
input[type="radio"] {
	display: inline-block;

	flex: 0 0 22px;

	width: 22px !important;
	min-width: 22px !important;
	max-width: 22px !important;

	height: 22px !important;
	min-height: 22px !important;
	max-height: 22px !important;

	aspect-ratio: 1 / 1;

	margin: 1px 12px 0 0 !important;
	padding: 0 !important;

	background: #ffffff;

	border: 1.5px solid #8e998b;
	border-radius: 50%;

	vertical-align: top;

	box-shadow: none;
}


body.woocommerce-checkout
.wc-block-components-radio-control__option {
	display: flex;
	align-items: flex-start;

	width: 100%;
}


body.woocommerce-checkout
.wc-block-components-radio-control__label {
	flex: 1 1 auto;

	min-width: 0;

	color: #3f4b3d;

	font-size: 15px;
	font-weight: 600;
	line-height: 1.45;
}


/* =========================================================
   SELECTED CHECKBOX AND RADIO COLOUR
   ========================================================= */

body.woocommerce-checkout
input[type="checkbox"]:checked,
body.woocommerce-checkout
input[type="radio"]:checked {
	accent-color: #176b2b;
}


/* =========================================================
   PAYMENT METHODS
   Includes Stripe and Direct Bank Transfer
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__payment-method {
	margin: 0 0 22px;
	padding: 26px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);
}


body.woocommerce-checkout
.wc-block-components-radio-control {
	width: 100%;
	margin: 0;
	padding: 0;
}


body.woocommerce-checkout
.wc-block-components-radio-control-accordion-option {
	width: 100%;

	margin: 0 0 10px;
	padding: 17px 18px;

	background: #f8faf6;

	border: 1px solid #dce5d7;
	border-radius: 12px;
}


body.woocommerce-checkout
.wc-block-components-radio-control-accordion-option:last-child {
	margin-bottom: 0;
}


body.woocommerce-checkout
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	background: #eef4e9;

	border-color: #8fb468;

	box-shadow: 0 0 0 2px rgba(143, 180, 104, 0.15);
}


body.woocommerce-checkout
.wc-block-components-radio-control-accordion-content {
	width: 100%;

	margin-top: 14px;
	padding: 17px;

	background: #ffffff;

	border: 1px solid #d9e2d5;
	border-radius: 11px;
}


/* =========================================================
   STRIPE PAYMENT AREA
   ========================================================= */

body.woocommerce-checkout
.wc-block-gateway-container,
body.woocommerce-checkout
.wc-block-components-payment-method-content {
	width: 100%;

	margin-top: 12px;
	padding: 17px;

	background: #ffffff;

	border: 1px solid #d6e0d1;
	border-radius: 11px;
}


body.woocommerce-checkout
.wc-block-gateway-container iframe {
	max-width: 100%;

	border-radius: 9px;
}


body.woocommerce-checkout
.wc-block-components-payment-method-icons {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 5px;
}


body.woocommerce-checkout
.wc-block-components-payment-method-icon {
	max-width: 48px;
	max-height: 27px;
}


/* Test mode notice */

body.woocommerce-checkout
.wc-block-components-notice-banner,
body.woocommerce-checkout
.wc-block-components-notice-banner.is-info {
	padding: 13px 16px;

	background: #fff8e7;
	color: #5d4b20;

	border: 1px solid #ead79e;
	border-radius: 10px;
}


/* =========================================================
   EXPRESS CHECKOUT AREA
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-express-payment {
	margin: 0 0 24px;
	padding: 18px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 14px;
}


body.woocommerce-checkout
.wc-block-components-express-payment__event-buttons {
	gap: 10px;
}


/* =========================================================
   ADD ORDER NOTE
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__add-note {
	margin: 0 0 22px;
	padding: 22px 26px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 16px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.04);
}


body.woocommerce-checkout
.wc-block-checkout__add-note
.wc-block-components-checkbox {
	align-items: center;
}


/* =========================================================
   TERMS
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__terms {
	margin: 0 0 20px;
	padding: 18px 20px;

	background: #f5f3ec;
	color: #52604f;

	border: 1px solid #dce3d7;
	border-radius: 12px;

	font-size: 14px;
	line-height: 1.55;
}


body.woocommerce-checkout
.wc-block-checkout__terms a {
	color: #176b2b;

	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* =========================================================
   PLACE ORDER BUTTON
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-checkout-place-order-button,
body.woocommerce-checkout
.wc-block-components-button.wp-element-button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 56px;

	margin: 0;
	padding: 14px 24px;

	background: #8fb468;
	color: #ffffff;

	border: 1px solid #8fb468;
	border-radius: 13px;

	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


body.woocommerce-checkout
.wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout
.wc-block-components-checkout-place-order-button:focus,
body.woocommerce-checkout
.wc-block-components-button.wp-element-button:hover,
body.woocommerce-checkout
.wc-block-components-button.wp-element-button:focus {
	background: #7ea456;
	color: #ffffff;

	border-color: #7ea456;

	transform: translateY(-1px);

	box-shadow: 0 7px 18px rgba(65, 105, 55, 0.16);

	outline: none;
}


/* =========================================================
   ORDER SUMMARY PANEL
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-sidebar {
	width: 100%;

	margin: 0;
	padding: 24px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 10px 30px rgba(38, 50, 38, 0.07);
}


body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-title {
	margin: 0 0 18px;

	color: #176b2b;

	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}


/* =========================================================
   ORDER SUMMARY ITEMS
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-order-summary-item {
	padding: 16px 0;

	border-bottom: 1px solid #e2e7df;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item:first-child {
	padding-top: 4px;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__image {
	width: 68px;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__image img {
	width: 68px;
	height: 68px;

	object-fit: cover;

	border-radius: 10px;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__description {
	min-width: 0;
	padding-left: 13px;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-name {
	color: #263226;

	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-metadata {
	color: #697566;

	font-size: 12px;
	line-height: 1.4;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__total-price {
	color: #176b2b;

	font-size: 15px;
	font-weight: 700;
}


body.woocommerce-checkout
.wc-block-components-order-summary-item__quantity {
	background: #176b2b;
	color: #ffffff;

	border: 2px solid #ffffff;
}


/* =========================================================
   COUPON, SUBTOTAL AND TOTAL
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-totals-coupon {
	margin: 0;
	padding: 14px 0;

	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-checkout
.wc-block-components-totals-coupon__button {
	color: #176b2b;

	font-weight: 700;
}


body.woocommerce-checkout
.wc-block-components-totals-item {
	padding: 15px 0;

	color: #485545;

	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-checkout
.wc-block-components-totals-item__label {
	font-size: 15px;
	font-weight: 600;
}


body.woocommerce-checkout
.wc-block-components-totals-item__value {
	color: #263226;

	font-size: 16px;
	font-weight: 700;
}


body.woocommerce-checkout
.wc-block-components-totals-footer-item {
	margin-top: 5px;
	padding: 20px 0 5px;

	border-top: 2px solid #d5e0cf;
	border-bottom: 0;
}


body.woocommerce-checkout
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__label {
	color: #263226;

	font-size: 22px;
	font-weight: 700;
}


body.woocommerce-checkout
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__value {
	color: #176b2b;

	font-size: 25px;
	font-weight: 700;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 980px) {

	body.woocommerce-checkout
	.wp-block-woocommerce-checkout {
		width: calc(100% - 32px);

		padding-top: 32px;
		padding-bottom: 60px;
	}


	body.woocommerce-checkout
	.wp-block-woocommerce-checkout
	.wc-block-checkout {
		grid-template-columns: 1fr;
		gap: 24px;
	}


	body.woocommerce-checkout
	.wp-block-woocommerce-checkout
	.wc-block-checkout__sidebar {
		position: static;

		order: -1;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-sidebar {
		padding: 21px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	body.woocommerce-checkout
	.wp-block-woocommerce-checkout {
		width: calc(100% - 24px);

		padding: 22px 0 45px;
	}


	body.woocommerce-checkout
	.wp-block-woocommerce-checkout
	h1,
	body.woocommerce-checkout
	.wp-block-woocommerce-checkout
	.wp-block-post-title {
		margin-bottom: 20px;

		font-size: 34px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__main
	.wc-block-components-checkout-step,
	body.woocommerce-checkout
	.wc-block-checkout__payment-method {
		margin-bottom: 15px;
		padding: 18px 16px;

		border-radius: 14px;
	}


	body.woocommerce-checkout
	.wc-block-components-checkout-step__title,
	body.woocommerce-checkout
	.wc-block-components-title {
		font-size: 19px;
	}


	/* Text fields only — no radio or checkbox distortion */

	body.woocommerce-checkout
	.wc-block-components-text-input
	input:not([type="checkbox"]):not([type="radio"]),

	body.woocommerce-checkout
	.wc-block-components-combobox-control
	input:not([type="checkbox"]):not([type="radio"]),

	body.woocommerce-checkout
	.wc-block-components-form
	input[type="text"],

	body.woocommerce-checkout
	.wc-block-components-form
	input[type="email"],

	body.woocommerce-checkout
	.wc-block-components-form
	input[type="tel"],

	body.woocommerce-checkout
	.wc-block-components-form
	input[type="number"],

	body.woocommerce-checkout
	.wc-block-components-form
	input[type="password"],

	body.woocommerce-checkout
	.wc-block-components-form
	select {
		min-height: 52px;

		font-size: 16px;
	}


	body.woocommerce-checkout
	.wc-block-components-combobox-control,
	body.woocommerce-checkout
	.wc-block-components-combobox-control input {
		min-height: 58px;
		height: 58px;
	}


	body.woocommerce-checkout
	.wc-block-components-radio-control-accordion-option {
		padding: 15px 14px;
	}


	body.woocommerce-checkout
	.wc-block-components-radio-control-accordion-content {
		padding: 14px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-sidebar {
		padding: 17px 16px;

		border-radius: 14px;
	}


	body.woocommerce-checkout
	.wc-block-components-order-summary-item__image,
	body.woocommerce-checkout
	.wc-block-components-order-summary-item__image img {
		width: 60px;
		height: 60px;
	}


	body.woocommerce-checkout
	.wc-block-components-checkout-place-order-button,
	body.woocommerce-checkout
	.wc-block-components-button.wp-element-button {
		min-height: 52px;

		font-size: 17px;

		border-radius: 12px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 420px) {

	body.woocommerce-checkout
	.wp-block-woocommerce-checkout {
		width: calc(100% - 18px);
	}


	body.woocommerce-checkout
	.wc-block-checkout__main
	.wc-block-components-checkout-step,
	body.woocommerce-checkout
	.wc-block-checkout__payment-method,
	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-sidebar {
		padding: 15px 13px;
	}


	body.woocommerce-checkout
	.wc-block-components-checkbox__label,
	body.woocommerce-checkout
	.wc-block-components-radio-control__label {
		font-size: 14px;
	}


	body.woocommerce-checkout
	.wc-block-components-totals-footer-item
	.wc-block-components-totals-item__label {
		font-size: 19px;
	}


	body.woocommerce-checkout
	.wc-block-components-totals-footer-item
	.wc-block-components-totals-item__value {
		font-size: 22px;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.woocommerce-checkout
	.wp-block-woocommerce-checkout *,
	body.woocommerce-checkout
	.wp-block-woocommerce-checkout *::before,
	body.woocommerce-checkout
	.wp-block-woocommerce-checkout *::after {
		transition: none !important;
	}
}


/* =========================================================
   JM CHECKOUT BASKET EDITING AND PRODUCT DETAILS
   Complete enhancement CSS block
   ========================================================= */


/* =========================================================
   CHECKOUT ORDER SUMMARY SPACING
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-sidebar {
	overflow: hidden;
}


/* Order summary heading row */

body.woocommerce-checkout
.jm-checkout-summary-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;

	padding: 24px 26px 20px;

	border-bottom: 1px solid #dfe6db;
}


body.woocommerce-checkout
.jm-checkout-summary-heading
.wc-block-components-title {
	margin: 0;

	padding: 0;
}


/* Remove duplicated outer padding when the heading is repositioned */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-sidebar
> .wc-block-components-title {
	padding: 24px 26px 18px;
}


/* Product rows inset from panel edges */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-order-summary {
	padding: 4px 26px 8px;
}


body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-order-summary-item {
	padding-top: 20px;
	padding-bottom: 20px;
}


/* Coupon section */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-totals-coupon {
	margin: 0;
	padding: 18px 26px;

	border-top: 1px solid #dfe6db;
	border-bottom: 1px solid #dfe6db;
}


/* Subtotal and other totals */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-totals-item {
	margin: 0;
	padding: 20px 26px;
}


/* Final total */

body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-totals-footer-item {
	margin: 0;
	padding: 25px 26px 27px;

	border-top: 2px solid #d5e0cf;
}


/* =========================================================
   EDIT BASKET BUTTON
   ========================================================= */

.jm-checkout-edit-basket {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;

	flex: 0 0 auto;

	min-height: 39px;
	padding: 8px 13px;

	background: #eef3e9;
	color: #176b2b;

	border: 1px solid #bfd0b5;
	border-radius: 10px;

	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


.jm-checkout-edit-basket:hover,
.jm-checkout-edit-basket:focus {
	background: #dfead7;
	color: #104f20;

	border-color: #a9c09b;

	transform: translateY(-1px);

	outline: none;
}


.jm-checkout-edit-basket__icon {
	font-family: Arial, sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1;
}


/* =========================================================
   VIEW DETAILS BUTTON INSIDE THE BASKET DRAWER
   ========================================================= */

.jm-cart-item__details-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: auto;
	min-height: 31px;

	margin: 9px 0 0;
	padding: 6px 10px;

	background: transparent;
	color: #176b2b;

	border: 1px solid #c6d5bf;
	border-radius: 8px;

	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.1;

	cursor: pointer;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease;
}


.jm-cart-item__details-button:hover,
.jm-cart-item__details-button:focus {
	background: #eef3e9;
	color: #104f20;

	border-color: #adc3a2;

	outline: none;
}


/* =========================================================
   PRODUCT DETAILS MODAL
   ========================================================= */

body.jm-product-modal-open {
	overflow: hidden;
}


.jm-product-modal {
	position: fixed;
	inset: 0;

	z-index: 1000001;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 24px;

	visibility: hidden;
	pointer-events: none;
}


.jm-product-modal.is-open {
	visibility: visible;
	pointer-events: auto;
}


.jm-product-modal__overlay {
	position: absolute;
	inset: 0;

	background: rgba(19, 27, 20, 0.66);

	opacity: 0;

	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);

	transition: opacity 0.24s ease;
}


.jm-product-modal.is-open
.jm-product-modal__overlay {
	opacity: 1;
}


/* Modal panel */

.jm-product-modal__dialog {
	position: relative;
	z-index: 1;

	display: flex;
	flex-direction: column;

	width: min(720px, 100%);
	max-height: min(760px, calc(100vh - 48px));

	overflow: hidden;

	background: #ffffff;
	color: #263226;

	border: 1px solid #d7e1d2;
	border-radius: 18px;

	box-shadow: 0 22px 65px rgba(15, 27, 17, 0.28);

	opacity: 0;
	transform: translateY(18px) scale(0.98);

	transition:
		opacity 0.24s ease,
		transform 0.24s ease;
}


.jm-product-modal.is-open
.jm-product-modal__dialog {
	opacity: 1;
	transform: translateY(0) scale(1);
}


/* Modal header */

.jm-product-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;

	flex: 0 0 auto;

	padding: 19px 21px;

	background: #f5f3ec;

	border-bottom: 1px solid #dfe5da;
}


.jm-product-modal__header h2 {
	margin: 0;

	color: #176b2b;

	font-size: 24px;
	font-weight: 700;
	line-height: 1.15;
}


/* Modal close button */

.jm-product-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 39px;
	height: 39px;
	padding: 0;

	background: #176b2b;
	color: #ffffff;

	border: 1px solid #176b2b;
	border-radius: 10px;

	font-family: Arial, sans-serif;
	font-size: 28px;
	font-weight: 300;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;
}


.jm-product-modal__close:hover,
.jm-product-modal__close:focus {
	background: #105a22;
	color: #ffffff;

	outline: none;
}


/* Scrollable modal body */

.jm-product-modal__body {
	flex: 1 1 auto;

	min-height: 0;

	padding: 22px;

	overflow-x: hidden;
	overflow-y: auto;

	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}


/* =========================================================
   PRODUCT DETAILS CONTENT
   ========================================================= */

.jm-product-details {
	display: grid;
	grid-template-columns: minmax(210px, 0.8fr) minmax(0, 1.2fr);
	gap: 25px;

	align-items: start;
}


.jm-product-details__image img {
	display: block;

	width: 100%;
	aspect-ratio: 1 / 1;

	object-fit: cover;

	background: #f5f3ec;

	border-radius: 14px;

	box-shadow: none;
}


.jm-product-details__content {
	min-width: 0;
}


.jm-product-details__title {
	margin: 0 0 9px;

	color: #263226;

	font-size: 25px;
	font-weight: 700;
	line-height: 1.2;
}


.jm-product-details__price {
	margin: 0 0 16px;

	color: #176b2b;

	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}


.jm-product-details__description {
	color: #566054;

	font-size: 15px;
	line-height: 1.58;
}


.jm-product-details__description p {
	margin: 0 0 12px;
}


.jm-product-details__options {
	margin: 15px 0 0;
	padding: 13px 15px;

	background: #f7f9f5;

	border: 1px solid #dce5d7;
	border-radius: 10px;

	color: #52604f;

	font-size: 13px;
	line-height: 1.5;
}


.jm-product-details__options dl,
.jm-product-details__options p {
	margin: 0;
}


.jm-product-details__categories {
	margin-top: 15px;

	color: #657062;

	font-size: 13px;
	line-height: 1.5;
}


.jm-product-details__categories a {
	color: #176b2b;

	font-weight: 700;
}


.jm-product-details__page-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 43px;

	margin-top: 18px;
	padding: 10px 16px;

	background: #8fb468;
	color: #ffffff;

	border: 1px solid #8fb468;
	border-radius: 11px;

	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;

	text-decoration: none;
}


.jm-product-details__page-link:hover,
.jm-product-details__page-link:focus {
	background: #7ea456;
	color: #ffffff;

	border-color: #7ea456;

	text-decoration: none;

	outline: none;
}


/* =========================================================
   MODAL LOADING AND ERROR STATES
   ========================================================= */

.jm-product-modal__status {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;

	min-height: 180px;

	color: #52604f;

	font-size: 15px;
	font-weight: 600;
	text-align: center;
}


.jm-product-modal__spinner {
	width: 23px;
	height: 23px;

	border: 3px solid #dce5d7;
	border-top-color: #176b2b;
	border-radius: 50%;

	animation: jm-product-modal-spin 0.75s linear infinite;
}


@keyframes jm-product-modal-spin {

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


.jm-product-modal__error {
	padding: 25px;

	background: #fff1f0;
	color: #842925;

	border: 1px solid #e7b5b2;
	border-radius: 12px;

	text-align: center;
}


.jm-product-modal__error strong {
	display: block;

	margin-bottom: 7px;

	font-size: 18px;
}


.jm-product-modal__error p {
	margin: 0;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 980px) {

	body.woocommerce-checkout
	.jm-checkout-summary-heading {
		padding: 21px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-order-summary {
		padding-right: 21px;
		padding-left: 21px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-coupon,
	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-item {
		padding-right: 21px;
		padding-left: 21px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-footer-item {
		padding-right: 21px;
		padding-left: 21px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	body.woocommerce-checkout
	.jm-checkout-summary-heading {
		padding: 17px 16px;
	}


	.jm-checkout-edit-basket {
		min-height: 36px;

		padding: 7px 10px;

		font-size: 12px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-order-summary {
		padding-right: 16px;
		padding-left: 16px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-coupon,
	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-item {
		padding-right: 16px;
		padding-left: 16px;
	}


	body.woocommerce-checkout
	.wc-block-checkout__sidebar
	.wc-block-components-totals-footer-item {
		padding: 21px 16px 23px;
	}


	.jm-product-modal {
		align-items: flex-end;

		padding: 10px;
	}


	.jm-product-modal__dialog {
		width: 100%;
		max-height: calc(100vh - 20px);

		border-radius: 16px;
	}


	.jm-product-modal__header {
		padding: 16px;
	}


	.jm-product-modal__header h2 {
		font-size: 21px;
	}


	.jm-product-modal__body {
		padding: 16px;
	}


	.jm-product-details {
		grid-template-columns: 1fr;
		gap: 18px;
	}


	.jm-product-details__image {
		max-width: 280px;

		margin: 0 auto;
	}


	.jm-product-details__title {
		font-size: 22px;
	}


	.jm-product-details__price {
		font-size: 20px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 420px) {

	body.woocommerce-checkout
	.jm-checkout-summary-heading {
		align-items: flex-start;
		flex-direction: column;

		gap: 11px;
	}


	.jm-checkout-edit-basket {
		width: 100%;
	}


	.jm-product-modal {
		padding: 0;
	}


	.jm-product-modal__dialog {
		height: 100%;
		max-height: 100%;

		border: 0;
		border-radius: 0;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.jm-checkout-edit-basket,
	.jm-product-modal__overlay,
	.jm-product-modal__dialog,
	.jm-product-details__page-link {
		transition: none !important;
		transform: none;
	}


	.jm-product-modal__spinner {
		animation-duration: 1.4s;
	}
}


/* =========================================================
   JM WOOCOMMERCE CART / BASKET PAGE
   Complete Cart Block styling
   ========================================================= */


/* =========================================================
   CART PAGE BACKGROUND
   ========================================================= */

body.woocommerce-cart {
	background: #f7f8f4;
	color: #263226;
}


body.woocommerce-cart #pagewrap,
body.woocommerce-cart #body,
body.woocommerce-cart #layout,
body.woocommerce-cart #content {
	background: #f7f8f4;
}


body.woocommerce-cart #layout {
	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;
}


body.woocommerce-cart #content {
	float: none;

	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;
}


/* Remove unwanted sidebar */

body.woocommerce-cart #sidebar {
	display: none !important;
}


/* =========================================================
   MAIN CART BLOCK WIDTH
   ========================================================= */

body.woocommerce-cart
.wp-block-woocommerce-cart {
	width: calc(100% - 48px);
	max-width: 1380px;

	margin: 0 auto;
	padding: 44px 0 80px;

	color: #263226;
}


/* =========================================================
   GENERAL BOX SIZING
   ========================================================= */

body.woocommerce-cart
.wp-block-woocommerce-cart *,
body.woocommerce-cart
.wp-block-woocommerce-cart *::before,
body.woocommerce-cart
.wp-block-woocommerce-cart *::after {
	box-sizing: border-box;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

body.woocommerce-cart
.wp-block-woocommerce-cart
h1,
body.woocommerce-cart
.wp-block-woocommerce-cart
.wp-block-post-title {
	margin: 0 0 28px;

	color: #176b2b;

	font-size: clamp(34px, 4vw, 54px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.025em;
}


/* =========================================================
   TWO-COLUMN CART LAYOUT
   ========================================================= */

body.woocommerce-cart
.wc-block-cart {
	display: grid;
	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(340px, 0.85fr);

	gap: 38px;

	align-items: start;
}


body.woocommerce-cart
.wc-block-cart__main {
	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;
}


body.woocommerce-cart
.wc-block-cart__sidebar {
	position: sticky;
	top: 28px;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;

	background: transparent;
}


/* =========================================================
   LEFT PRODUCT PANEL
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-items {
	width: 100%;

	margin: 0;
	padding: 0;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);

	overflow: hidden;
}


/* Remove the plain table appearance */

body.woocommerce-cart
.wc-block-cart-items
table {
	width: 100%;

	margin: 0;

	border-collapse: collapse;
	border-spacing: 0;

	background: transparent;
}


/* =========================================================
   CART TABLE HEADINGS
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-items
thead {
	background: #f5f3ec;
}


body.woocommerce-cart
.wc-block-cart-items
thead th {
	padding: 18px 22px;

	color: #566054;

	border: 0;
	border-bottom: 1px solid #dfe5da;

	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;

	letter-spacing: 0.035em;
	text-transform: uppercase;
}


body.woocommerce-cart
.wc-block-cart-items
thead
.wc-block-cart-items__header-image {
	text-align: left;
}


body.woocommerce-cart
.wc-block-cart-items
thead
.wc-block-cart-items__header-total {
	text-align: right;
}


/* =========================================================
   INDIVIDUAL PRODUCT ROWS
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-items
.wc-block-cart-items__row {
	position: relative;

	background: #ffffff;

	border: 0;
	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-cart
.wc-block-cart-items
.wc-block-cart-items__row:last-child {
	border-bottom: 0;
}


body.woocommerce-cart
.wc-block-cart-items
.wc-block-cart-items__row td {
	padding-top: 24px;
	padding-bottom: 24px;

	border: 0;

	vertical-align: top;
}


/* Product image cell */

body.woocommerce-cart
.wc-block-cart-item__image {
	width: 126px;

	padding-left: 22px;
	padding-right: 17px;
}


/* Product information cell */

body.woocommerce-cart
.wc-block-cart-item__product {
	min-width: 0;

	padding-right: 22px;
}


/* Product total cell */

body.woocommerce-cart
.wc-block-cart-item__total {
	width: 130px;

	padding-right: 22px;
	padding-left: 15px;

	text-align: right;
}


/* =========================================================
   PRODUCT IMAGES
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__image
a {
	display: block;
}


body.woocommerce-cart
.wc-block-cart-item__image
img {
	display: block;

	width: 102px;
	height: 102px;

	max-width: none;

	object-fit: cover;

	background: #f5f3ec;

	border: 0;
	border-radius: 13px;

	box-shadow: none;
}


/* =========================================================
   PRODUCT NAME
   ========================================================= */

body.woocommerce-cart
.wc-block-components-product-name {
	display: inline-block;

	margin: 0 0 7px;

	color: #263226 !important;

	font-size: 17px;
	font-weight: 700;
	line-height: 1.32;

	text-decoration: none;

	overflow-wrap: anywhere;
}


body.woocommerce-cart
a.wc-block-components-product-name:hover,
body.woocommerce-cart
a.wc-block-components-product-name:focus {
	color: #176b2b !important;

	text-decoration: none;

	outline: none;
}


/* =========================================================
   PRODUCT PRICE
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__prices {
	margin: 0 0 7px;

	color: #176b2b;

	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
}


body.woocommerce-cart
.wc-block-components-product-price {
	color: #176b2b;

	font-weight: 700;
}


body.woocommerce-cart
.wc-block-components-product-price
.wc-block-components-product-price__value {
	color: #176b2b;
}


/* =========================================================
   PRODUCT DESCRIPTION
   ========================================================= */

body.woocommerce-cart
.wc-block-components-product-metadata {
	max-width: 620px;

	margin: 0 0 14px;

	color: #687465;

	font-size: 13px;
	line-height: 1.5;
}


body.woocommerce-cart
.wc-block-components-product-metadata
p {
	margin: 0 0 5px;
}


body.woocommerce-cart
.wc-block-components-product-metadata__description {
	display: -webkit-box;

	overflow: hidden;

	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}


/* =========================================================
   VARIATION INFORMATION
   ========================================================= */

body.woocommerce-cart
.wc-block-components-product-details {
	margin: 6px 0 12px;

	color: #657062;

	font-size: 12px;
	line-height: 1.45;
}


body.woocommerce-cart
.wc-block-components-product-details
li {
	margin: 0 0 3px;
}


/* =========================================================
   QUANTITY CONTROLS
   ========================================================= */

body.woocommerce-cart
.wc-block-components-quantity-selector {
	display: inline-grid;
	grid-template-columns: 37px 46px 37px;
	align-items: center;

	width: auto;
	height: 42px;

	margin: 0;

	background: #ffffff;

	border: 1px solid #cfdbca;
	border-radius: 11px;

	overflow: hidden;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-quantity-selector::after {
	display: none;
}


/* Minus and plus buttons */

body.woocommerce-cart
.wc-block-components-quantity-selector
button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 37px;
	min-width: 37px;
	height: 40px;
	min-height: 40px;

	margin: 0;
	padding: 0;

	background: #f3f6f0;
	color: #176b2b;

	border: 0;
	border-radius: 0;

	font-family: Arial, sans-serif;
	font-size: 19px;
	font-weight: 500;
	line-height: 1;

	cursor: pointer;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-quantity-selector
button:hover,
body.woocommerce-cart
.wc-block-components-quantity-selector
button:focus {
	background: #dfead7;
	color: #104f20;

	outline: none;
}


/* Quantity number */

body.woocommerce-cart
.wc-block-components-quantity-selector
input {
	display: block;

	width: 46px !important;
	min-width: 46px !important;
	max-width: 46px !important;

	height: 40px !important;
	min-height: 40px !important;
	max-height: 40px !important;

	margin: 0 !important;
	padding: 0 3px !important;

	background: #ffffff;
	color: #263226;

	border: 0 !important;
	border-right: 1px solid #d9e2d5 !important;
	border-left: 1px solid #d9e2d5 !important;
	border-radius: 0 !important;

	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 40px;
	text-align: center;

	box-shadow: none !important;

	appearance: textfield;
	-moz-appearance: textfield;
}


body.woocommerce-cart
.wc-block-components-quantity-selector
input::-webkit-inner-spin-button,
body.woocommerce-cart
.wc-block-components-quantity-selector
input::-webkit-outer-spin-button {
	margin: 0;

	appearance: none;
	-webkit-appearance: none;
}


body.woocommerce-cart
.wc-block-components-quantity-selector
input:focus {
	outline: 2px solid #9fbe7b !important;
	outline-offset: -2px;
}


/* =========================================================
   REMOVE PRODUCT BUTTON
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 34px;

	margin: 0 0 0 12px;
	padding: 7px 10px;

	background: transparent;
	color: #63705f;

	border: 1px solid #d4ded0;
	border-radius: 9px;

	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;

	text-decoration: none;

	cursor: pointer;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-cart-item__remove-link:hover,
body.woocommerce-cart
.wc-block-cart-item__remove-link:focus {
	background: #176b2b;
	color: #ffffff;

	border-color: #176b2b;

	text-decoration: none;

	outline: none;
}


/* Hide any oversized theme-added trash icon */

body.woocommerce-cart
.wc-block-cart-item__remove-link
svg {
	width: 16px;
	height: 16px;

	margin-right: 5px;
}


/* =========================================================
   PRODUCT LINE TOTAL
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__total-price-and-sale-badge-wrapper {
	display: flex;
	align-items: flex-end;
	flex-direction: column;

	gap: 5px;
}


body.woocommerce-cart
.wc-block-cart-item__total-price-and-sale-badge-wrapper
.wc-block-components-product-price {
	color: #176b2b;

	font-size: 17px;
	font-weight: 700;

	white-space: nowrap;
}


/* =========================================================
   RIGHT BASKET TOTALS PANEL
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-sidebar {
	width: 100%;

	margin: 0;
	padding: 0;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 10px 30px rgba(38, 50, 38, 0.07);

	overflow: hidden;
}


/* Basket totals heading */

body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-title {
	margin: 0;
	padding: 23px 25px 19px;

	color: #176b2b;

	border-bottom: 1px solid #dfe6db;

	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}


/* =========================================================
   COUPON SECTION
   ========================================================= */

body.woocommerce-cart
.wc-block-components-totals-coupon {
	margin: 0;
	padding: 18px 25px;

	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-cart
.wc-block-components-totals-coupon
.wc-block-components-panel__button {
	width: 100%;

	margin: 0;
	padding: 0;

	background: transparent;
	color: #3f4b3d;

	border: 0;

	font-size: 15px;
	font-weight: 600;
	text-align: left;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-totals-coupon
.wc-block-components-panel__button:hover,
body.woocommerce-cart
.wc-block-components-totals-coupon
.wc-block-components-panel__button:focus {
	color: #176b2b;

	outline: none;
}


/* Coupon form */

body.woocommerce-cart
.wc-block-components-totals-coupon__content {
	padding-top: 15px;
}


body.woocommerce-cart
.wc-block-components-totals-coupon__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 9px;
}


/* Coupon input */

body.woocommerce-cart
.wc-block-components-totals-coupon__input
input {
	width: 100%;
	min-height: 47px;

	padding: 12px 13px;

	background: #fbfcfa;
	color: #263226;

	border: 1px solid #ced9c9;
	border-radius: 10px;

	font-family: inherit;
	font-size: 15px;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-totals-coupon__input
input:focus {
	background: #ffffff;

	border-color: #8fb468;

	box-shadow: 0 0 0 3px rgba(143, 180, 104, 0.18);

	outline: none;
}


/* Apply coupon button */

body.woocommerce-cart
.wc-block-components-totals-coupon__button {
	min-height: 47px;

	padding: 10px 15px;

	background: #eef3e9;
	color: #176b2b;

	border: 1px solid #cad8c0;
	border-radius: 10px;

	font-size: 13px;
	font-weight: 700;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-totals-coupon__button:hover,
body.woocommerce-cart
.wc-block-components-totals-coupon__button:focus {
	background: #dfead7;
	color: #104f20;

	border-color: #b8caae;

	outline: none;
}


/* =========================================================
   SUBTOTAL, DELIVERY AND FEES
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;

	margin: 0;
	padding: 19px 25px;

	color: #485545;

	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-cart
.wc-block-components-totals-item__label {
	font-size: 15px;
	font-weight: 600;
}


body.woocommerce-cart
.wc-block-components-totals-item__value {
	color: #263226;

	font-size: 16px;
	font-weight: 700;

	white-space: nowrap;
}


/* =========================================================
   DELIVERY OPTIONS
   ========================================================= */

body.woocommerce-cart
.wc-block-components-totals-shipping {
	padding: 19px 25px;

	border-bottom: 1px solid #e1e7dd;
}


body.woocommerce-cart
.wc-block-components-totals-shipping
.wc-block-components-totals-item {
	padding: 0;

	border: 0;
}


body.woocommerce-cart
.wc-block-components-shipping-rates-control {
	margin-top: 14px;
}


body.woocommerce-cart
.wc-block-components-radio-control-accordion-option {
	margin: 0 0 9px;
	padding: 14px;

	background: #f8faf6;

	border: 1px solid #dce5d7;
	border-radius: 11px;
}


/* =========================================================
   FINAL ESTIMATED TOTAL
   ========================================================= */

body.woocommerce-cart
.wc-block-components-totals-footer-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;

	margin: 0;
	padding: 25px;

	border-top: 2px solid #d5e0cf;
	border-bottom: 0;
}


body.woocommerce-cart
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__label {
	color: #263226;

	font-size: 22px;
	font-weight: 700;
}


body.woocommerce-cart
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__value {
	color: #176b2b;

	font-size: 25px;
	font-weight: 700;

	white-space: nowrap;
}


/* =========================================================
   EXPRESS CHECKOUT BUTTONS
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__payment-options {
	padding: 20px 25px 0;
}


body.woocommerce-cart
.wc-block-components-express-payment {
	margin: 0;
	padding: 0;

	background: transparent;

	border: 0;
}


body.woocommerce-cart
.wc-block-components-express-payment__event-buttons {
	display: grid;
	grid-template-columns: 1fr;
	gap: 9px;
}


/* Allow provider buttons to retain their own brand colours */

body.woocommerce-cart
.wc-block-components-express-payment
button,
body.woocommerce-cart
.wc-block-components-express-payment
iframe {
	width: 100%;

	border-radius: 10px;
}


/* OR separator */

body.woocommerce-cart
.wc-block-cart__submit-container::before {
	color: #687465;

	font-size: 12px;
	font-weight: 600;
}


/* =========================================================
   PROCEED TO CHECKOUT BUTTON
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__submit-container {
	padding: 20px 25px 25px;
}


body.woocommerce-cart
.wc-block-cart__submit-button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 55px;

	margin: 0;
	padding: 14px 22px;

	background: #8fb468;
	color: #ffffff;

	border: 1px solid #8fb468;
	border-radius: 13px;

	font-family: inherit;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;

	text-decoration: none;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


body.woocommerce-cart
.wc-block-cart__submit-button:hover,
body.woocommerce-cart
.wc-block-cart__submit-button:focus {
	background: #7ea456;
	color: #ffffff;

	border-color: #7ea456;

	transform: translateY(-1px);

	box-shadow: 0 7px 18px rgba(65, 105, 55, 0.16);

	text-decoration: none;

	outline: none;
}


/* Checkout button text */

body.woocommerce-cart
.wc-block-cart__submit-button
.wc-block-components-button__text {
	color: #ffffff;

	font-weight: 700;
}


/* =========================================================
   EMPTY BASKET STATE
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__empty-cart__title {
	margin: 0 0 14px;

	color: #176b2b;

	font-size: 31px;
	font-weight: 700;
	line-height: 1.2;

	text-align: center;
}


body.woocommerce-cart
.wc-block-cart__empty-cart__description {
	max-width: 620px;

	margin: 0 auto 24px;

	color: #566054;

	font-size: 16px;
	line-height: 1.55;

	text-align: center;
}


body.woocommerce-cart
.wc-block-cart__empty-cart__products-title {
	margin: 42px 0 24px;

	color: #263226;

	font-size: 25px;
	font-weight: 700;
	text-align: center;
}


/* =========================================================
   CROSS-SELL PRODUCTS
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__cross-sells {
	margin-top: 32px;
	padding: 25px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);
}


body.woocommerce-cart
.wc-block-cart__cross-sells-title {
	margin: 0 0 22px;

	color: #176b2b;

	font-size: 24px;
	font-weight: 700;
}


/* =========================================================
   NOTICES
   ========================================================= */

body.woocommerce-cart
.wc-block-components-notice-banner {
	margin: 0 0 18px;
	padding: 14px 16px;

	border-radius: 11px;
}


body.woocommerce-cart
.wc-block-components-notice-banner.is-error {
	background: #fff1f0;
	color: #842925;

	border: 1px solid #e7b5b2;
}


body.woocommerce-cart
.wc-block-components-notice-banner.is-success {
	background: #edf7e9;
	color: #285a28;

	border: 1px solid #b9d4ae;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 980px) {

	body.woocommerce-cart
	.wp-block-woocommerce-cart {
		width: calc(100% - 32px);

		padding-top: 32px;
		padding-bottom: 60px;
	}


	body.woocommerce-cart
	.wc-block-cart {
		grid-template-columns: 1fr;
		gap: 25px;
	}


	body.woocommerce-cart
	.wc-block-cart__sidebar {
		position: static;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image {
		width: 112px;

		padding-left: 19px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image
	img {
		width: 88px;
		height: 88px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	body.woocommerce-cart
	.wp-block-woocommerce-cart {
		width: calc(100% - 24px);

		padding: 22px 0 45px;
	}


	body.woocommerce-cart
	.wc-block-cart-items,
	body.woocommerce-cart
	.wc-block-cart__sidebar
	.wc-block-components-sidebar {
		border-radius: 14px;
	}


	/* Hide desktop headings */

	body.woocommerce-cart
	.wc-block-cart-items
	thead {
		display: none;
	}


	/* Product row becomes a compact card */

	body.woocommerce-cart
	.wc-block-cart-items
	.wc-block-cart-items__row {
		display: grid;
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas:
			"image product"
			"image total";

		gap: 0 13px;

		padding: 17px 15px;
	}


	body.woocommerce-cart
	.wc-block-cart-items
	.wc-block-cart-items__row td {
		display: block;

		width: auto;

		padding: 0;

		border: 0;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image {
		grid-area: image;

		width: 76px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__product {
		grid-area: product;

		min-width: 0;
	}


	body.woocommerce-cart
	.wc-block-cart-item__total {
		grid-area: total;

		width: auto;

		margin-top: 12px;

		text-align: left;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image
	img {
		width: 76px;
		height: 76px;

		border-radius: 10px;
	}


	body.woocommerce-cart
	.wc-block-components-product-name {
		margin-bottom: 5px;

		font-size: 15px;
	}


	body.woocommerce-cart
	.wc-block-components-product-metadata {
		margin-bottom: 11px;

		font-size: 12px;
	}


	body.woocommerce-cart
	.wc-block-components-product-metadata__description {
		-webkit-line-clamp: 2;
	}


	/* Quantity and remove controls */

	body.woocommerce-cart
	.wc-block-components-quantity-selector {
		grid-template-columns: 32px 40px 32px;

		height: 37px;
	}


	body.woocommerce-cart
	.wc-block-components-quantity-selector
	button {
		width: 32px;
		min-width: 32px;

		height: 35px;
		min-height: 35px;

		font-size: 17px;
	}


	body.woocommerce-cart
	.wc-block-components-quantity-selector
	input {
		width: 40px !important;
		min-width: 40px !important;
		max-width: 40px !important;

		height: 35px !important;
		min-height: 35px !important;
		max-height: 35px !important;

		line-height: 35px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__remove-link {
		min-height: 32px;

		margin-left: 7px;
		padding: 6px 8px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__total-price-and-sale-badge-wrapper {
		align-items: flex-start;
	}


	/* Right panel spacing */

	body.woocommerce-cart
	.wc-block-cart__sidebar
	.wc-block-components-title {
		padding: 19px 17px 16px;

		font-size: 21px;
	}


	body.woocommerce-cart
	.wc-block-components-totals-coupon,
	body.woocommerce-cart
	.wc-block-cart__sidebar
	.wc-block-components-totals-item,
	body.woocommerce-cart
	.wc-block-components-totals-shipping {
		padding-right: 17px;
		padding-left: 17px;
	}


	body.woocommerce-cart
	.wc-block-components-totals-footer-item {
		padding: 21px 17px 23px;
	}


	body.woocommerce-cart
	.wc-block-components-totals-footer-item
	.wc-block-components-totals-item__label {
		font-size: 19px;
	}


	body.woocommerce-cart
	.wc-block-components-totals-footer-item
	.wc-block-components-totals-item__value {
		font-size: 22px;
	}


	body.woocommerce-cart
	.wc-block-cart__payment-options {
		padding: 17px 17px 0;
	}


	body.woocommerce-cart
	.wc-block-cart__submit-container {
		padding: 17px;
	}


	body.woocommerce-cart
	.wc-block-cart__submit-button {
		min-height: 52px;

		font-size: 16px;

		border-radius: 12px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 420px) {

	body.woocommerce-cart
	.wp-block-woocommerce-cart {
		width: calc(100% - 18px);
	}


	body.woocommerce-cart
	.wc-block-cart-items
	.wc-block-cart-items__row {
		grid-template-columns: 66px minmax(0, 1fr);

		gap: 0 10px;

		padding: 15px 12px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image {
		width: 66px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__image
	img {
		width: 66px;
		height: 66px;
	}


	body.woocommerce-cart
	.wc-block-components-product-name {
		font-size: 14px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__product
	.wc-block-components-quantity-selector {
		margin-bottom: 8px;
	}


	body.woocommerce-cart
	.wc-block-cart-item__remove-link {
		display: flex;

		width: fit-content;

		margin: 7px 0 0;
	}


	body.woocommerce-cart
	.wc-block-components-totals-coupon__form {
		grid-template-columns: 1fr;
	}


	body.woocommerce-cart
	.wc-block-components-totals-coupon__button {
		width: 100%;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.woocommerce-cart
	.wp-block-woocommerce-cart *,
	body.woocommerce-cart
	.wp-block-woocommerce-cart *::before,
	body.woocommerce-cart
	.wp-block-woocommerce-cart *::after {
		transition: none !important;
		transform: none;
	}
}


/* =========================================================
   JM WOOCOMMERCE INDIVIDUAL PRODUCT PAGES
   Complete replacement CSS
   Includes description-panel spacing
   ========================================================= */


/* =========================================================
   PAGE BACKGROUND AND MAIN CONTENT WIDTH
   ========================================================= */

body.single-product {
	background: #f7f8f4;
	color: #263226;
}

body.single-product #pagewrap,
body.single-product #body,
body.single-product #layout,
body.single-product #content {
	background: #f7f8f4;
}

body.single-product #layout {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.single-product #content {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.single-product #sidebar {
	display: none !important;
}

body.single-product #content > .product,
body.single-product #content > div.product {
	width: calc(100% - 48px);
	max-width: 1380px;
	margin: 0 auto;
	padding: 46px 0 80px;
}

body.single-product #content > .product *,
body.single-product #content > .product *::before,
body.single-product #content > .product *::after {
	box-sizing: border-box;
}


/* =========================================================
   TOP PRODUCT LAYOUT
   ========================================================= */

body.single-product div.product > .woocommerce-product-gallery {
	float: left;
	width: calc(55% - 18px);
	margin: 0 36px 0 0;
}

body.single-product div.product > .summary {
	float: right;
	width: calc(45% - 18px);
	margin: 0;
	padding: 32px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 19px;

	box-shadow: 0 10px 30px rgba(38, 50, 38, 0.07);
}

body.single-product div.product::after {
	display: block;
	clear: both;
	content: "";
}


/* =========================================================
   PRODUCT IMAGE PANEL
   ========================================================= */

body.single-product .woocommerce-product-gallery {
	position: relative;

	padding: 18px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 19px;

	box-shadow: 0 10px 30px rgba(38, 50, 38, 0.07);

	overflow: hidden;
}

body.single-product .woocommerce-product-gallery__wrapper {
	margin: 0;
}

body.single-product .woocommerce-product-gallery__image {
	overflow: hidden;
	border-radius: 14px;
}

body.single-product .woocommerce-product-gallery__image a {
	display: block;
}

body.single-product .woocommerce-product-gallery__image img {
	display: block;

	width: 100%;
	height: auto;
	max-height: 650px;

	margin: 0;

	object-fit: cover;

	background: #f5f3ec;

	border: 0;
	border-radius: 14px;

	box-shadow: none;
}


/* =========================================================
   IMAGE ZOOM BUTTON
   ========================================================= */

body.single-product .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 30px;
	right: 30px;
	z-index: 5;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 46px;
	height: 46px;

	background: rgba(255, 255, 255, 0.95);
	color: #176b2b;

	border: 1px solid #d4ded0;
	border-radius: 12px;

	text-decoration: none;

	box-shadow: 0 5px 16px rgba(31, 50, 31, 0.14);
}

body.single-product .woocommerce-product-gallery__trigger:hover,
body.single-product .woocommerce-product-gallery__trigger:focus {
	background: #176b2b;
	color: #ffffff;
	border-color: #176b2b;
	outline: none;
}


/* =========================================================
   GALLERY THUMBNAILS
   ========================================================= */

body.single-product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;

	margin: 13px 0 0;
	padding: 0;

	list-style: none;
}

body.single-product .flex-control-thumbs li {
	float: none;
	width: auto;
	margin: 0;
}

body.single-product .flex-control-thumbs img {
	display: block;

	width: 100%;
	aspect-ratio: 1 / 1;

	object-fit: cover;

	border: 2px solid transparent;
	border-radius: 9px;

	opacity: 0.72;
	cursor: pointer;
}

body.single-product .flex-control-thumbs img:hover,
body.single-product .flex-control-thumbs img.flex-active {
	border-color: #8fb468;
	opacity: 1;
}


/* =========================================================
   PRODUCT TITLE
   ========================================================= */

body.single-product .product_title,
body.single-product h1.product_title,
body.single-product .summary .entry-title {
	margin: 0 0 14px;

	color: #263226;

	font-family: inherit !important;
	font-size: clamp(31px, 3.2vw, 47px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.025em;
}


/* =========================================================
   PRODUCT PRICE
   ========================================================= */

body.single-product .summary .price {
	margin: 0 0 22px;

	color: #176b2b !important;

	font-family: inherit;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
}

body.single-product .summary .price .amount,
body.single-product .summary .price .woocommerce-Price-amount,
body.single-product .summary .price .woocommerce-Price-currencySymbol {
	color: #176b2b !important;
	font-weight: 700;
}

body.single-product .summary .price del {
	margin-right: 7px;

	color: #7a8578;

	font-size: 18px;

	opacity: 0.75;
}

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


/* =========================================================
   SHORT DESCRIPTION
   ========================================================= */

body.single-product .woocommerce-product-details__short-description {
	margin: 0 0 25px;

	color: #566054;

	font-family: inherit;
	font-size: 17px;
	line-height: 1.65;
}

body.single-product .woocommerce-product-details__short-description p {
	margin: 0 0 13px;
}

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


/* =========================================================
   STOCK STATUS
   ========================================================= */

body.single-product .stock {
	margin: 0 0 15px;

	color: #176b2b;

	font-size: 14px;
	font-weight: 700;
}

body.single-product .stock.out-of-stock {
	color: #a32626;
}


/* =========================================================
   ADD TO BASKET FORM
   ========================================================= */

body.single-product .summary form.cart {
	display: flex !important;
	align-items: center;
	flex-wrap: nowrap;
	gap: 14px;

	width: 100%;

	margin: 0 0 24px;
	padding: 18px;

	background: #f7f9f5;

	border: 1px solid #dce5d7;
	border-radius: 14px;
}


/* =========================================================
   QUANTITY WRAPPER
   ========================================================= */

body.single-product .summary form.cart .quantity {
	position: relative;

	display: inline-grid !important;
	grid-template-columns: 42px 52px 42px;
	align-items: center;

	flex: 0 0 136px;

	width: 136px !important;
	min-width: 136px !important;
	max-width: 136px !important;

	height: 48px !important;
	min-height: 48px !important;
	max-height: 48px !important;

	margin: 0 !important;
	padding: 0 !important;

	background: #ffffff;

	border: 1px solid #cad7c5;
	border-radius: 11px;

	overflow: hidden;

	box-shadow: none;
}


/* =========================================================
   QUANTITY MINUS AND PLUS BUTTONS
   ========================================================= */

body.single-product .summary form.cart .quantity button,
body.single-product .summary form.cart .quantity .qty-minus,
body.single-product .summary form.cart .quantity .qty-plus,
body.single-product .summary form.cart .quantity .minus,
body.single-product .summary form.cart .quantity .plus {
	position: static !important;
	float: none !important;

	display: flex !important;
	align-items: center;
	justify-content: center;

	width: 42px !important;
	min-width: 42px !important;
	max-width: 42px !important;

	height: 46px !important;
	min-height: 46px !important;
	max-height: 46px !important;

	margin: 0 !important;
	padding: 0 !important;

	background: #f1f5ee !important;
	color: #176b2b !important;

	border: 0 !important;
	border-radius: 0 !important;

	font-family: Arial, sans-serif;
	font-size: 20px;
	font-weight: 500;
	line-height: 1;

	text-indent: 0 !important;

	cursor: pointer;

	box-shadow: none !important;
}

body.single-product .summary form.cart .quantity button:hover,
body.single-product .summary form.cart .quantity button:focus,
body.single-product .summary form.cart .quantity .qty-minus:hover,
body.single-product .summary form.cart .quantity .qty-minus:focus,
body.single-product .summary form.cart .quantity .qty-plus:hover,
body.single-product .summary form.cart .quantity .qty-plus:focus,
body.single-product .summary form.cart .quantity .minus:hover,
body.single-product .summary form.cart .quantity .minus:focus,
body.single-product .summary form.cart .quantity .plus:hover,
body.single-product .summary form.cart .quantity .plus:focus {
	background: #dfead7 !important;
	color: #104f20 !important;
	outline: none;
}


/* =========================================================
   QUANTITY NUMBER INPUT
   ========================================================= */

body.single-product .summary form.cart .quantity input.qty,
body.single-product .summary form.cart .quantity input[type="number"],
body.single-product .summary form.cart .quantity input.input-text {
	position: static !important;
	float: none !important;

	display: block !important;

	grid-column: 2;

	width: 52px !important;
	min-width: 52px !important;
	max-width: 52px !important;

	height: 46px !important;
	min-height: 46px !important;
	max-height: 46px !important;

	margin: 0 !important;
	padding: 0 4px !important;

	background: #ffffff !important;
	color: #263226 !important;

	border: 0 !important;
	border-right: 1px solid #d7e0d3 !important;
	border-left: 1px solid #d7e0d3 !important;
	border-radius: 0 !important;

	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 46px !important;
	text-align: center !important;

	text-indent: 0 !important;

	opacity: 1 !important;
	visibility: visible !important;

	box-shadow: none !important;

	appearance: textfield;
	-moz-appearance: textfield;
}

body.single-product .summary form.cart .quantity input.qty::-webkit-inner-spin-button,
body.single-product .summary form.cart .quantity input.qty::-webkit-outer-spin-button {
	margin: 0;

	appearance: none;
	-webkit-appearance: none;
}

body.single-product .summary form.cart .quantity input.qty:focus {
	outline: 2px solid #9fbe7b !important;
	outline-offset: -2px;
}


/* =========================================================
   ADD TO BASKET BUTTON
   ========================================================= */

body.single-product .summary .single_add_to_cart_button,
body.single-product .summary button.single_add_to_cart_button,
body.single-product .summary .button.alt {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;

	flex: 1 1 auto;

	width: auto;
	min-width: 170px;
	min-height: 48px;

	margin: 0 !important;
	padding: 12px 22px;

	background: #8fb468 !important;
	color: #ffffff !important;

	border: 1px solid #8fb468 !important;
	border-radius: 12px;

	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;

	cursor: pointer;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

body.single-product .summary .single_add_to_cart_button:hover,
body.single-product .summary .single_add_to_cart_button:focus,
body.single-product .summary .button.alt:hover,
body.single-product .summary .button.alt:focus {
	background: #7ea456 !important;
	color: #ffffff !important;
	border-color: #7ea456 !important;

	transform: translateY(-1px);

	box-shadow: 0 7px 18px rgba(65, 105, 55, 0.16);

	outline: none;
}

body.single-product .summary .single_add_to_cart_button.disabled,
body.single-product .summary .single_add_to_cart_button:disabled {
	background: #c5d4ba !important;
	border-color: #c5d4ba !important;

	cursor: not-allowed;

	transform: none;

	box-shadow: none;
}


/* =========================================================
   VARIABLE PRODUCT OPTIONS
   ========================================================= */

body.single-product .summary .variations {
	width: 100%;

	margin: 0 0 17px;

	border: 0;
}

body.single-product .summary .variations tr,
body.single-product .summary .variations td,
body.single-product .summary .variations th {
	display: block;

	width: 100%;

	padding: 0;

	border: 0;
}

body.single-product .summary .variations label {
	display: block;

	margin: 0 0 7px;

	color: #485545;

	font-size: 14px;
	font-weight: 700;
}

body.single-product .summary .variations select {
	width: 100%;
	min-height: 48px;

	margin: 0 0 15px;
	padding: 11px 42px 11px 13px;

	background: #ffffff;
	color: #263226;

	border: 1px solid #cad7c5;
	border-radius: 10px;

	font-family: inherit;
	font-size: 15px;

	box-shadow: none;
}

body.single-product .summary .reset_variations {
	display: inline-block;

	margin: 0 0 14px;

	color: #176b2b;

	font-size: 13px;
	font-weight: 700;
}


/* =========================================================
   EXPRESS PAYMENT AREA
   ========================================================= */

body.single-product .summary .wc-stripe-product-checkout-container,
body.single-product .summary .wc-block-components-express-payment,
body.single-product .summary #wc-stripe-express-checkout-element {
	width: 100%;

	margin: 18px 0 20px;
	padding: 15px;

	background: #f7f9f5;

	border: 1px solid #dce5d7;
	border-radius: 14px;
}

body.single-product .summary .wc-stripe-product-checkout-container button,
body.single-product .summary .wc-stripe-product-checkout-container iframe,
body.single-product .summary #wc-stripe-express-checkout-element button,
body.single-product .summary #wc-stripe-express-checkout-element iframe {
	max-width: 100%;
	border-radius: 9px;
}


/* =========================================================
   PRODUCT META
   ========================================================= */

body.single-product .summary .product_meta {
	margin: 21px 0 0;
	padding: 17px;

	background: #f5f3ec;
	color: #657062;

	border: 1px solid #dfe5da;
	border-radius: 12px;

	font-size: 13px;
	line-height: 1.65;
}

body.single-product .summary .product_meta > span {
	display: block;
	margin: 0 0 3px;
}

body.single-product .summary .product_meta > span:last-child {
	margin-bottom: 0;
}

body.single-product .summary .product_meta a {
	color: #176b2b !important;

	font-weight: 700;
	text-decoration: none;
}

body.single-product .summary .product_meta a:hover,
body.single-product .summary .product_meta a:focus {
	color: #104f20 !important;

	text-decoration: underline;
	text-underline-offset: 3px;
}


/* =========================================================
   SALE BADGE
   ========================================================= */

body.single-product .onsale {
	position: absolute;
	top: 30px;
	left: 30px;
	z-index: 6;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 62px;
	min-height: 34px;

	margin: 0;
	padding: 7px 11px;

	background: #176b2b;
	color: #ffffff;

	border: 2px solid #ffffff;
	border-radius: 9px;

	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;

	box-shadow: 0 4px 12px rgba(25, 54, 27, 0.16);
}


/* =========================================================
   DESCRIPTION / REVIEWS OUTER PANEL
   ========================================================= */

body.single-product .woocommerce-tabs,
body.single-product .product-description-tabs,
body.single-product .product-description-accordion,
body.single-product .product-description {
	clear: both;

	width: 100%;

	margin: 38px 0 0;
	padding: 0;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);

	overflow: hidden;
}


/* =========================================================
   STANDARD WOOCOMMERCE TABS
   ========================================================= */

body.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	margin: 0;
	padding: 0 22px;

	background: #f5f3ec;

	border: 0;
	border-bottom: 1px solid #dfe5da;

	list-style: none;
}

body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after {
	display: none;
}

body.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;

	background: transparent;

	border: 0;
	border-radius: 0;

	box-shadow: none;
}

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

body.single-product .woocommerce-tabs ul.tabs li a {
	display: block;

	padding: 17px 18px;

	color: #566054;

	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;

	border-bottom: 3px solid transparent;
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #176b2b;
	border-bottom-color: #8fb468;
}

body.single-product .woocommerce-tabs ul.tabs li a:hover,
body.single-product .woocommerce-tabs ul.tabs li a:focus {
	color: #176b2b;
	outline: none;
}


/* =========================================================
   THEMIFY DESCRIPTION ACCORDION HEADING
   ========================================================= */

body.single-product .woocommerce-tabs .accordion-title,
body.single-product .product-description-tabs .accordion-title,
body.single-product .product-description-accordion .accordion-title,
body.single-product .product-description .accordion-title {
	display: flex;
	align-items: center;
	gap: 14px;

	width: 100%;
	min-height: 68px;

	margin: 0;
	padding: 20px 28px;

	background: #ffffff;
	color: #263226;

	border: 0;
	border-bottom: 1px solid #e1e7dd;

	font-family: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;

	cursor: pointer;
}

body.single-product .woocommerce-tabs .accordion-title:hover,
body.single-product .product-description-tabs .accordion-title:hover,
body.single-product .product-description-accordion .accordion-title:hover,
body.single-product .product-description .accordion-title:hover {
	background: #f8faf6;
}


/* =========================================================
   DESCRIPTION CONTENT
   ========================================================= */

body.single-product .woocommerce-tabs .panel,
body.single-product .woocommerce-tabs .accordion-content,
body.single-product .product-description-tabs .accordion-content,
body.single-product .product-description-accordion .accordion-content,
body.single-product .product-description .accordion-content,
body.single-product .woocommerce-Tabs-panel,
body.single-product .woocommerce-Tabs-panel--description,
body.single-product #tab-description {
	width: 100%;

	margin: 0 !important;
	padding: 34px 38px 38px !important;

	background: #ffffff;
	color: #354133;

	border: 0;

	font-family: inherit;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.72;
}


/* Keep description content within its padded area */

body.single-product .woocommerce-tabs .panel > *,
body.single-product .woocommerce-tabs .accordion-content > *,
body.single-product .product-description-tabs .accordion-content > *,
body.single-product .product-description-accordion .accordion-content > *,
body.single-product .product-description .accordion-content > *,
body.single-product .woocommerce-Tabs-panel > *,
body.single-product #tab-description > * {
	max-width: 100%;
	margin-right: 0;
	margin-left: 0;
}


/* Description paragraphs */

body.single-product .woocommerce-tabs .panel p,
body.single-product .woocommerce-tabs .accordion-content p,
body.single-product .product-description-tabs .accordion-content p,
body.single-product .product-description-accordion .accordion-content p,
body.single-product .product-description .accordion-content p,
body.single-product .woocommerce-Tabs-panel p,
body.single-product #tab-description p {
	margin: 0 0 22px;

	color: #354133;

	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

body.single-product .woocommerce-tabs .panel p:last-child,
body.single-product .woocommerce-tabs .accordion-content p:last-child,
body.single-product .product-description-tabs .accordion-content p:last-child,
body.single-product .product-description-accordion .accordion-content p:last-child,
body.single-product .product-description .accordion-content p:last-child,
body.single-product .woocommerce-Tabs-panel p:last-child,
body.single-product #tab-description p:last-child {
	margin-bottom: 0;
}


/* Bold text inside description */

body.single-product .woocommerce-tabs .panel strong,
body.single-product .woocommerce-tabs .accordion-content strong,
body.single-product .product-description-tabs .accordion-content strong,
body.single-product .product-description-accordion .accordion-content strong,
body.single-product .product-description .accordion-content strong,
body.single-product .woocommerce-Tabs-panel strong,
body.single-product #tab-description strong {
	color: #263226;
	font-weight: 700;
}


/* Description headings */

body.single-product .woocommerce-tabs .panel h2,
body.single-product .woocommerce-tabs .panel h3,
body.single-product .woocommerce-tabs .accordion-content h2,
body.single-product .woocommerce-tabs .accordion-content h3,
body.single-product .product-description .accordion-content h2,
body.single-product .product-description .accordion-content h3,
body.single-product .woocommerce-Tabs-panel h2,
body.single-product .woocommerce-Tabs-panel h3,
body.single-product #tab-description h2,
body.single-product #tab-description h3 {
	margin: 30px 0 14px;

	color: #176b2b;

	font-family: inherit !important;
	font-weight: 700;
	line-height: 1.25;
}

body.single-product .woocommerce-tabs .panel h2:first-child,
body.single-product .woocommerce-tabs .panel h3:first-child,
body.single-product .woocommerce-tabs .accordion-content h2:first-child,
body.single-product .woocommerce-tabs .accordion-content h3:first-child,
body.single-product .product-description .accordion-content h2:first-child,
body.single-product .product-description .accordion-content h3:first-child,
body.single-product .woocommerce-Tabs-panel h2:first-child,
body.single-product .woocommerce-Tabs-panel h3:first-child,
body.single-product #tab-description h2:first-child,
body.single-product #tab-description h3:first-child {
	margin-top: 0;
}


/* Description lists */

body.single-product .woocommerce-tabs .panel ul,
body.single-product .woocommerce-tabs .panel ol,
body.single-product .woocommerce-tabs .accordion-content ul,
body.single-product .woocommerce-tabs .accordion-content ol,
body.single-product .product-description .accordion-content ul,
body.single-product .product-description .accordion-content ol,
body.single-product .woocommerce-Tabs-panel ul,
body.single-product .woocommerce-Tabs-panel ol,
body.single-product #tab-description ul,
body.single-product #tab-description ol {
	margin: 0 0 22px;
	padding-left: 25px;
}

body.single-product .woocommerce-tabs .panel li,
body.single-product .woocommerce-tabs .accordion-content li,
body.single-product .product-description .accordion-content li,
body.single-product .woocommerce-Tabs-panel li,
body.single-product #tab-description li {
	margin-bottom: 8px;
	line-height: 1.65;
}


/* ==========================================================
   JM WOOCOMMERCE RELATED PRODUCTS
   COMPLETE REPLACEMENT CSS
   Includes quantity controls for simple products
   ========================================================== */

.single-product .related.products {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 50px 0 0;
	padding: 48px 44px;
	background: #ffffff;
	border: 1px solid rgba(78, 124, 55, 0.18);
	border-radius: 22px;
	box-sizing: border-box;
}

.single-product .related.products *,
.single-product .related.products *::before,
.single-product .related.products *::after {
	box-sizing: border-box;
}

/* Related products heading */
.single-product .related.products > h2 {
	width: 100%;
	margin: 0 0 34px;
	padding: 0;
	color: #19712d;
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.025em;
}

/* Product grid */
.single-product .related.products ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 28px !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	align-items: stretch;
}

.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after {
	display: none !important;
	content: none !important;
}

/* Product card */
.single-product .related.products ul.products li.product,
.single-product .related.products ul.products li.product.first,
.single-product .related.products ul.products li.product.last,
.single-product .related.products ul.products li.product:nth-child(n) {
	position: relative;
	display: flex !important;
	float: none !important;
	clear: none !important;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	height: 100%;
	margin: 0 !important;
	padding: 20px !important;
	overflow: hidden;
	background: #fbfcf9;
	border: 1px solid rgba(78, 124, 55, 0.2);
	border-radius: 18px;
	box-shadow:
		0 8px 24px rgba(38, 67, 30, 0.06),
		0 2px 6px rgba(38, 67, 30, 0.03);
	transition:
		transform 200ms ease,
		border-color 200ms ease,
		box-shadow 200ms ease;
}

.single-product .related.products ul.products li.product:hover {
	transform: translateY(-3px);
	border-color: rgba(54, 126, 49, 0.34);
	box-shadow:
		0 14px 30px rgba(38, 67, 30, 0.1),
		0 3px 8px rgba(38, 67, 30, 0.04);
}

/* Product link */
.single-product .related.products ul.products li.product > a {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	color: inherit;
	text-decoration: none;
}

/* Product image */
.single-product .related.products ul.products li.product a img {
	display: block;
	width: 100% !important;
	height: auto !important;
	margin: 0 0 22px !important;
	padding: 0 !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	border: 0;
	border-radius: 14px;
	box-shadow: none;
	transition: transform 280ms ease;
}

.single-product .related.products ul.products li.product:hover a img {
	transform: scale(1.02);
}

/* Product title */
.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 10px !important;
	padding: 0 !important;
	color: #273421;
	font-size: clamp(18px, 1.5vw, 23px) !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: -0.015em;
	overflow-wrap: anywhere;
}

/* Product price */
.single-product .related.products ul.products li.product .price {
	display: block;
	margin: auto 0 18px !important;
	padding-top: 0;
	color: #17732c !important;
	font-size: 21px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
}

.single-product .related.products ul.products li.product .price del {
	margin-right: 6px;
	color: #7c8378 !important;
	font-size: 0.82em;
	font-weight: 500;
	opacity: 0.75;
}

.single-product .related.products ul.products li.product .price ins {
	color: #17732c !important;
	font-weight: 700;
	text-decoration: none;
}

/* ==========================================================
   RELATED PRODUCT CART
   ========================================================== */

.single-product .related.products .jm-related-cart {
	display: grid !important;
	grid-template-columns: 116px minmax(0, 1fr);
	gap: 10px;
	align-items: end;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

/* Quantity wrapper */
.single-product .related.products .jm-related-quantity {
	display: flex;
	flex-direction: column;
	gap: 7px;
	width: 116px;
	min-width: 116px;
	margin: 0;
	padding: 0;
}

.single-product .related.products .jm-related-quantity__label {
	display: block;
	margin: 0;
	padding: 0;
	color: #60675d;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

/* Quantity control */
.single-product .related.products .jm-related-quantity__control {
	display: grid;
	grid-template-columns: 38px 40px 38px;
	width: 116px;
	height: 46px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid #cfdbc9;
	border-radius: 11px;
}

/* Minus and plus buttons */
.single-product .related.products .jm-related-quantity__button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 38px !important;
	min-width: 38px !important;
	height: 44px !important;
	min-height: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #33762f !important;
	background: #f1f7ed !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	cursor: pointer;
	transition:
		color 160ms ease,
		background-color 160ms ease;
}

.single-product .related.products .jm-related-quantity__button:hover,
.single-product .related.products .jm-related-quantity__button:focus {
	color: #ffffff !important;
	background: #43883b !important;
}

/* Quantity number */
.single-product .related.products .jm-related-quantity__input {
	display: block !important;
	position: static !important;
	width: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	height: 44px !important;
	min-height: 44px !important;
	margin: 0 !important;
	padding: 0 2px !important;
	color: #263122 !important;
	background: #ffffff !important;
	border: 0 !important;
	border-right: 1px solid #e0e8dc !important;
	border-left: 1px solid #e0e8dc !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 44px !important;
	text-align: center !important;
	text-indent: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	-webkit-text-fill-color: #263122 !important;
	appearance: textfield !important;
	-moz-appearance: textfield !important;
}

.single-product .related.products .jm-related-quantity__input::-webkit-outer-spin-button,
.single-product .related.products .jm-related-quantity__input::-webkit-inner-spin-button {
	margin: 0 !important;
	-webkit-appearance: none !important;
}

/* Add to basket button used with quantity */
.single-product .related.products .jm-related-add-to-basket {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 46px !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 10px 14px !important;
	color: #ffffff !important;
	background: #72a950 !important;
	border: 1px solid #72a950 !important;
	border-radius: 11px !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}

.single-product .related.products .jm-related-add-to-basket:hover,
.single-product .related.products .jm-related-add-to-basket:focus {
	color: #ffffff !important;
	background: #397f35 !important;
	border-color: #397f35 !important;
	transform: translateY(-1px);
	box-shadow: 0 7px 16px rgba(39, 106, 35, 0.18) !important;
}

/* ==========================================================
   STANDARD BUTTON
   Used for variable products and Select options
   ========================================================== */

.single-product .related.products ul.products li.product > .button,
.single-product .related.products ul.products li.product > a.button,
.single-product .related.products ul.products li.product > .add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 52px;
	margin: 0 !important;
	padding: 12px 18px !important;
	color: #ffffff !important;
	background: #72a950 !important;
	border: 1px solid #72a950 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: normal;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}

.single-product .related.products ul.products li.product > .button:hover,
.single-product .related.products ul.products li.product > .button:focus,
.single-product .related.products ul.products li.product > a.button:hover,
.single-product .related.products ul.products li.product > a.button:focus {
	color: #ffffff !important;
	background: #397f35 !important;
	border-color: #397f35 !important;
	transform: translateY(-1px);
	box-shadow: 0 7px 16px rgba(39, 106, 35, 0.18) !important;
}

/* Hide WooCommerce's automatic View basket link */
.single-product .related.products .added_to_cart {
	display: none !important;
}

/* Sale badge */
.single-product .related.products ul.products li.product .onsale {
	position: absolute;
	top: 30px;
	left: 30px;
	right: auto;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 30px;
	margin: 0;
	padding: 6px 12px;
	color: #ffffff;
	background: #28762e;
	border: 0;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}

/* Rating */
.single-product .related.products ul.products li.product .star-rating {
	margin: 0 0 12px;
}

/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (max-width: 1050px) {
	.single-product .related.products {
		padding: 38px 30px;
	}

	.single-product .related.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}

/* ==========================================================
   SMALL TABLET AND MOBILE
   ========================================================== */

@media screen and (max-width: 680px) {
	.single-product .related.products {
		margin-top: 36px;
		padding: 28px 18px;
		border-radius: 17px;
	}

	.single-product .related.products > h2 {
		margin-bottom: 24px;
		font-size: 28px;
	}

	.single-product .related.products ul.products {
		grid-template-columns: 1fr !important;
		gap: 18px !important;
	}

	.single-product .related.products ul.products li.product,
	.single-product .related.products ul.products li.product.first,
	.single-product .related.products ul.products li.product.last,
	.single-product .related.products ul.products li.product:nth-child(n) {
		padding: 16px !important;
		border-radius: 15px;
	}

	.single-product .related.products ul.products li.product a img {
		margin-bottom: 18px !important;
		border-radius: 12px;
	}

	.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
		font-size: 20px !important;
	}

	.single-product .related.products ul.products li.product .price {
		margin-bottom: 16px !important;
		font-size: 20px !important;
	}
}

/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */

@media screen and (max-width: 420px) {
	.single-product .related.products {
		padding: 24px 13px;
	}

	.single-product .related.products ul.products li.product,
	.single-product .related.products ul.products li.product.first,
	.single-product .related.products ul.products li.product.last,
	.single-product .related.products ul.products li.product:nth-child(n) {
		padding: 13px !important;
	}

	.single-product .related.products .jm-related-cart {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.single-product .related.products .jm-related-quantity {
		width: 100%;
		min-width: 0;
	}

	.single-product .related.products .jm-related-quantity__control {
		grid-template-columns: 44px minmax(48px, 1fr) 44px;
		width: 100%;
		height: 46px;
	}

	.single-product .related.products .jm-related-quantity__button {
		width: 44px !important;
		min-width: 44px !important;
	}

	.single-product .related.products .jm-related-quantity__input {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
	}

	.single-product .related.products .jm-related-add-to-basket {
		width: 100% !important;
	}
}

/* ==========================================================
   ACCESSIBILITY
   ========================================================== */

.single-product .related.products a:focus-visible,
.single-product .related.products button:focus-visible,
.single-product .related.products input:focus-visible {
	outline: 3px solid rgba(54, 126, 49, 0.35) !important;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.single-product .related.products *,
	.single-product .related.products *::before,
	.single-product .related.products *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==========================================================
/* =========================================================
   UPSELL PRODUCTS
   ========================================================= */

body.single-product .upsells.products {
	clear: both;

	width: 100%;

	margin: 40px 0 0;
	padding: 30px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 18px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);
}

body.single-product .upsells.products > h2 {
	margin: 0 0 25px;

	color: #176b2b;

	font-family: inherit !important;
	font-size: 29px;
	font-weight: 700;
}


/* =========================================================
   WOOCOMMERCE MESSAGES
   ========================================================= */

body.single-product .woocommerce-message,
body.single-product .woocommerce-info,
body.single-product .woocommerce-error {
	clear: both;

	margin: 0 0 24px;
	padding: 16px 18px 16px 52px;

	border: 1px solid;
	border-radius: 12px;

	font-size: 14px;
	line-height: 1.5;
}

body.single-product .woocommerce-message {
	background: #edf7e9;
	color: #285a28;
	border-color: #b9d4ae;
}

body.single-product .woocommerce-info {
	background: #f0f6fb;
	color: #28516d;
	border-color: #b9d3e4;
}

body.single-product .woocommerce-error {
	background: #fff1f0;
	color: #842925;
	border-color: #e7b5b2;
}


/* =========================================================
   REVIEWS
   ========================================================= */

body.single-product #reviews #comments ol.commentlist {
	margin: 0;
	padding: 0;

	list-style: none;
}

body.single-product #reviews #comments ol.commentlist li {
	margin: 0 0 17px;
}

body.single-product
#reviews
#comments
ol.commentlist
.comment_container {
	padding: 17px;

	background: #f7f9f5;

	border: 1px solid #dce5d7;
	border-radius: 12px;
}

body.single-product #review_form_wrapper {
	margin-top: 25px;
	padding-top: 25px;

	border-top: 1px solid #dfe5da;
}

body.single-product #review_form input[type="text"],
body.single-product #review_form input[type="email"],
body.single-product #review_form textarea {
	width: 100%;

	padding: 12px 14px;

	background: #fbfcfa;
	color: #263226;

	border: 1px solid #ced9c9;
	border-radius: 10px;

	font-family: inherit;
	font-size: 15px;

	box-shadow: none;
}

body.single-product #review_form textarea {
	min-height: 120px;
	resize: vertical;
}

body.single-product #review_form input:focus,
body.single-product #review_form textarea:focus {
	background: #ffffff;

	border-color: #8fb468;

	box-shadow: 0 0 0 3px rgba(143, 180, 104, 0.18);

	outline: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1024px) {

	body.single-product #content > .product,
	body.single-product #content > div.product {
		width: calc(100% - 34px);
		padding-top: 34px;
	}

	body.single-product div.product > .woocommerce-product-gallery {
		width: calc(52% - 14px);
		margin-right: 28px;
	}

	body.single-product div.product > .summary {
		width: calc(48% - 14px);
		padding: 25px;
	}

	body.single-product .related.products ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 18px;
	}
}


/* =========================================================
   MOBILE AND SMALL TABLETS
   ========================================================= */

@media screen and (max-width: 780px) {

	body.single-product #content > .product,
	body.single-product #content > div.product {
		width: calc(100% - 26px);
		padding: 24px 0 52px;
	}

	body.single-product div.product > .woocommerce-product-gallery,
	body.single-product div.product > .summary {
		float: none;
		width: 100%;
		margin-right: 0;
		margin-left: 0;
	}

	body.single-product div.product > .summary {
		margin-top: 18px;
		padding: 22px;

		border-radius: 15px;
	}

	body.single-product .woocommerce-product-gallery {
		padding: 13px;
		border-radius: 15px;
	}

	body.single-product .woocommerce-product-gallery__image img {
		max-height: none;
		border-radius: 11px;
	}

	body.single-product .woocommerce-product-gallery__trigger {
		top: 23px;
		right: 23px;

		width: 42px;
		height: 42px;
	}

	body.single-product .product_title,
	body.single-product h1.product_title,
	body.single-product .summary .entry-title {
		font-size: 32px;
	}

	body.single-product .summary .price {
		font-size: 24px;
	}

	body.single-product .woocommerce-product-details__short-description {
		font-size: 16px;
	}

	body.single-product .summary form.cart {
		flex-wrap: nowrap;
		padding: 15px;
	}

	body.single-product .woocommerce-tabs,
	body.single-product .product-description-tabs,
	body.single-product .product-description-accordion,
	body.single-product .product-description {
		margin-top: 26px;
		border-radius: 15px;
	}

	body.single-product .woocommerce-tabs .accordion-title,
	body.single-product .product-description-tabs .accordion-title,
	body.single-product .product-description-accordion .accordion-title,
	body.single-product .product-description .accordion-title {
		min-height: 62px;

		padding: 18px 22px;

		font-size: 18px;
	}

	body.single-product .woocommerce-tabs .panel,
	body.single-product .woocommerce-tabs .accordion-content,
	body.single-product .product-description-tabs .accordion-content,
	body.single-product .product-description-accordion .accordion-content,
	body.single-product .product-description .accordion-content,
	body.single-product .woocommerce-Tabs-panel,
	body.single-product .woocommerce-Tabs-panel--description,
	body.single-product #tab-description {
		padding: 27px 26px 31px !important;

		font-size: 16px;
		line-height: 1.68;
	}

	body.single-product .related.products,
	body.single-product .upsells.products {
		margin-top: 25px;
		padding: 20px;

		border-radius: 14px;
	}

	body.single-product .related.products > h2,
	body.single-product .upsells.products > h2 {
		font-size: 25px;
	}

	body.single-product .related.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 15px;
	}
}


/* =========================================================
   MOBILE PHONES
   ========================================================= */

@media screen and (max-width: 560px) {

	body.single-product #content > .product,
	body.single-product #content > div.product {
		width: calc(100% - 20px);
	}

	body.single-product div.product > .summary {
		padding: 18px 16px;
	}

	body.single-product .product_title,
	body.single-product h1.product_title,
	body.single-product .summary .entry-title {
		font-size: 27px;
	}

	body.single-product .summary .price {
		margin-bottom: 17px;
		font-size: 22px;
	}

	body.single-product .summary form.cart {
		display: grid !important;
		grid-template-columns: 122px minmax(0, 1fr);
		align-items: center;
		gap: 10px;

		padding: 13px;
	}

	body.single-product .summary form.cart .quantity {
		grid-template-columns: 37px 48px 37px;

		flex: none;

		width: 122px !important;
		min-width: 122px !important;
		max-width: 122px !important;
	}

	body.single-product .summary form.cart .quantity button,
	body.single-product .summary form.cart .quantity .qty-minus,
	body.single-product .summary form.cart .quantity .qty-plus,
	body.single-product .summary form.cart .quantity .minus,
	body.single-product .summary form.cart .quantity .plus {
		width: 37px !important;
		min-width: 37px !important;
		max-width: 37px !important;
	}

	body.single-product .summary form.cart .quantity input.qty,
	body.single-product .summary form.cart .quantity input[type="number"],
	body.single-product .summary form.cart .quantity input.input-text {
		width: 48px !important;
		min-width: 48px !important;
		max-width: 48px !important;
	}

	body.single-product .summary .single_add_to_cart_button,
	body.single-product .summary button.single_add_to_cart_button,
	body.single-product .summary .button.alt {
		width: 100%;
		min-width: 0;

		padding-right: 12px;
		padding-left: 12px;

		font-size: 14px;
	}

	body.single-product .summary .product_meta {
		font-size: 12px;
	}

	body.single-product .woocommerce-tabs ul.tabs {
		display: grid;
		grid-template-columns: 1fr;

		padding: 0;
	}

	body.single-product .woocommerce-tabs ul.tabs li a {
		padding: 14px 16px;

		border-bottom: 1px solid #dfe5da;
		border-left: 3px solid transparent;
	}

	body.single-product .woocommerce-tabs ul.tabs li.active a {
		border-bottom-color: #dfe5da;
		border-left-color: #8fb468;
	}

	body.single-product .woocommerce-tabs .accordion-title,
	body.single-product .product-description-tabs .accordion-title,
	body.single-product .product-description-accordion .accordion-title,
	body.single-product .product-description .accordion-title {
		min-height: 58px;

		padding: 16px 18px;

		font-size: 17px;
	}

	body.single-product .woocommerce-tabs .panel,
	body.single-product .woocommerce-tabs .accordion-content,
	body.single-product .product-description-tabs .accordion-content,
	body.single-product .product-description-accordion .accordion-content,
	body.single-product .product-description .accordion-content,
	body.single-product .woocommerce-Tabs-panel,
	body.single-product .woocommerce-Tabs-panel--description,
	body.single-product #tab-description {
		padding: 23px 19px 27px !important;

		font-size: 15px;
		line-height: 1.65;
	}

	body.single-product .woocommerce-tabs .panel p,
	body.single-product .woocommerce-tabs .accordion-content p,
	body.single-product .product-description .accordion-content p,
	body.single-product .woocommerce-Tabs-panel p,
	body.single-product #tab-description p {
		margin-bottom: 18px;
	}

	body.single-product .related.products,
	body.single-product .upsells.products {
		padding: 16px 14px;
	}

	body.single-product .related.products ul.products {
		grid-template-columns: 1fr;
	}

	body.single-product .related.products ul.products li.product {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		grid-template-areas:
			"image information"
			"image button";

		gap: 0 13px;

		padding: 12px;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.woocommerce-LoopProduct-link {
		display: contents;
	}

	body.single-product .related.products ul.products li.product img {
		grid-area: image;

		width: 112px;
		height: 112px;

		margin: 0;

		aspect-ratio: 1 / 1;
	}

	body.single-product .related.products ul.products li.product h2,
	body.single-product
	.related.products
	ul.products
	li.product
	.woocommerce-loop-product__title {
		grid-area: information;
		font-size: 15px;
	}

	body.single-product .related.products ul.products li.product .price {
		grid-area: information;
		align-self: end;

		margin: 38px 0 0;

		font-size: 15px;
	}

	body.single-product .related.products ul.products li.product .button {
		grid-area: button;
		align-self: end;

		min-height: 37px;

		margin-top: 8px;
		padding: 8px 12px;

		font-size: 12px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 390px) {

	body.single-product .summary form.cart {
		grid-template-columns: 1fr;
	}

	body.single-product .summary form.cart .quantity {
		width: 122px !important;
	}

	body.single-product .summary .single_add_to_cart_button {
		width: 100%;
	}

	body.single-product .related.products ul.products li.product {
		grid-template-columns: 92px minmax(0, 1fr);
	}

	body.single-product .related.products ul.products li.product img {
		width: 92px;
		height: 92px;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.single-product #content > .product *,
	body.single-product #content > .product *::before,
	body.single-product #content > .product *::after {
		transition: none !important;
		transform: none;
	}
}


/* =========================================================
   JM SINGLE PRODUCT SHORT DESCRIPTION
   Complete replacement — fixes text touching the border
   ========================================================= */


/* Main short-description panel */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description {
	display: block !important;

	width: 100% !important;

	margin: 0 0 24px !important;
	padding: 22px 24px !important;

	background: #f9faf7 !important;
	color: #566054 !important;

	border: 1px solid #dce5d7 !important;
	border-radius: 14px !important;

	box-sizing: border-box !important;
	overflow: hidden !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;

	box-shadow: none !important;
}


/* Remove Themify styling from everything inside the panel */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description > * {
	width: auto !important;
	max-width: 100% !important;

	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;

	background: transparent !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-sizing: border-box !important;
	box-shadow: none !important;
}


/* Paragraph styling */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description p {
	display: block !important;

	margin: 0 0 14px !important;
	padding: 0 !important;

	background: transparent !important;
	color: #566054 !important;

	border: 0 !important;
	border-radius: 0 !important;

	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;

	box-shadow: none !important;
}


/* Final paragraph */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0 !important;
}


/* Handle text wrapped in an additional div */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description > div {
	margin: 0 !important;
	padding: 0 !important;

	background: transparent !important;

	border: 0 !important;
	border-radius: 0 !important;
}


/* Prevent line content touching either side */

body.single-product
div.product
.summary
.woocommerce-product-details__short-description br {
	line-height: inherit;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 780px) {

	body.single-product
	div.product
	.summary
	.woocommerce-product-details__short-description {
		padding: 19px 21px !important;

		font-size: 16px !important;
		line-height: 1.62 !important;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 560px) {

	body.single-product
	div.product
	.summary
	.woocommerce-product-details__short-description {
		margin-bottom: 20px !important;
		padding: 17px 18px !important;

		border-radius: 12px !important;

		font-size: 15px !important;
		line-height: 1.6 !important;
	}
}


/* =========================================================
   JM WOOCOMMERCE SHOP AND PRODUCT ARCHIVE PAGES
   Complete replacement archive styling
   ========================================================= */


/* =========================================================
   PAGE BACKGROUND AND WIDTH
   ========================================================= */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
	background: #f7f8f4;
	color: #263226;
}


body.post-type-archive-product #pagewrap,
body.post-type-archive-product #body,
body.post-type-archive-product #layout,
body.post-type-archive-product #content,

body.tax-product_cat #pagewrap,
body.tax-product_cat #body,
body.tax-product_cat #layout,
body.tax-product_cat #content,

body.tax-product_tag #pagewrap,
body.tax-product_tag #body,
body.tax-product_tag #layout,
body.tax-product_tag #content {
	background: #f7f8f4;
}


body.post-type-archive-product #layout,
body.tax-product_cat #layout,
body.tax-product_tag #layout {
	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;
}


body.post-type-archive-product #content,
body.tax-product_cat #content,
body.tax-product_tag #content {
	float: none;

	width: calc(100% - 48px);
	max-width: 1380px;

	margin: 0 auto;
	padding: 46px 0 80px;
}


/* Remove unwanted archive sidebar */

body.post-type-archive-product #sidebar,
body.tax-product_cat #sidebar,
body.tax-product_tag #sidebar {
	display: none !important;
}


/* Consistent sizing */

body.post-type-archive-product #content *,
body.post-type-archive-product #content *::before,
body.post-type-archive-product #content *::after,

body.tax-product_cat #content *,
body.tax-product_cat #content *::before,
body.tax-product_cat #content *::after,

body.tax-product_tag #content *,
body.tax-product_tag #content *::before,
body.tax-product_tag #content *::after {
	box-sizing: border-box;
}


/* =========================================================
   SHOP PAGE TITLE
   ========================================================= */

body.post-type-archive-product
.woocommerce-products-header,
body.tax-product_cat
.woocommerce-products-header,
body.tax-product_tag
.woocommerce-products-header {
	margin: 0 0 30px;
}


body.post-type-archive-product
.woocommerce-products-header__title,
body.post-type-archive-product
.page-title,

body.tax-product_cat
.woocommerce-products-header__title,
body.tax-product_cat
.page-title,

body.tax-product_tag
.woocommerce-products-header__title,
body.tax-product_tag
.page-title {
	margin: 0 0 14px;

	color: #176b2b;

	font-family: inherit !important;
	font-size: clamp(34px, 4vw, 52px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.025em;
}


/* Optional archive/category description */

body.post-type-archive-product
.term-description,
body.tax-product_cat
.term-description,
body.tax-product_tag
.term-description {
	max-width: 850px;

	margin: 0 0 28px;
	padding: 20px 22px;

	background: #ffffff;
	color: #566054;

	border: 1px solid #dce5d7;
	border-radius: 14px;

	font-size: 16px;
	line-height: 1.65;

	box-shadow: 0 7px 20px rgba(38, 50, 38, 0.04);
}


body.post-type-archive-product
.term-description p,
body.tax-product_cat
.term-description p,
body.tax-product_tag
.term-description p {
	margin: 0 0 12px;
}


body.post-type-archive-product
.term-description p:last-child,
body.tax-product_cat
.term-description p:last-child,
body.tax-product_tag
.term-description p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   PRODUCT COUNT AND SORTING BAR
   ========================================================= */

body.post-type-archive-product
.woocommerce-result-count,
body.tax-product_cat
.woocommerce-result-count,
body.tax-product_tag
.woocommerce-result-count {
	float: left;

	margin: 0 0 25px;
	padding: 11px 15px;

	background: #ffffff;
	color: #657062;

	border: 1px solid #dce5d7;
	border-radius: 10px;

	font-size: 14px;
	line-height: 1.3;
}


body.post-type-archive-product
.woocommerce-ordering,
body.tax-product_cat
.woocommerce-ordering,
body.tax-product_tag
.woocommerce-ordering {
	float: right;

	margin: 0 0 25px;
}


body.post-type-archive-product
.woocommerce-ordering select,
body.tax-product_cat
.woocommerce-ordering select,
body.tax-product_tag
.woocommerce-ordering select {
	min-height: 43px;

	padding: 9px 38px 9px 13px;

	background: #ffffff;
	color: #263226;

	border: 1px solid #d1dccd;
	border-radius: 10px;

	font-family: inherit;
	font-size: 14px;

	box-shadow: none;
}


body.post-type-archive-product
.woocommerce-ordering select:focus,
body.tax-product_cat
.woocommerce-ordering select:focus,
body.tax-product_tag
.woocommerce-ordering select:focus {
	border-color: #8fb468;

	box-shadow: 0 0 0 3px rgba(143, 180, 104, 0.16);

	outline: none;
}


/* Clear sorting row */

body.post-type-archive-product
.woocommerce-result-count + .woocommerce-ordering::after,
body.tax-product_cat
.woocommerce-result-count + .woocommerce-ordering::after,
body.tax-product_tag
.woocommerce-result-count + .woocommerce-ordering::after {
	display: block;
	clear: both;

	content: "";
}


/* =========================================================
   PRODUCT GRID
   ========================================================= */

body.post-type-archive-product
ul.products,
body.tax-product_cat
ul.products,
body.tax-product_tag
ul.products {
	clear: both;

	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;

	list-style: none;
}


/* Override Themify and WooCommerce floats */

body.post-type-archive-product
ul.products
li.product,
body.tax-product_cat
ul.products
li.product,
body.tax-product_tag
ul.products
li.product {
	position: relative;

	float: none !important;

	display: flex;
	flex-direction: column;

	width: 100% !important;
	min-width: 0;
	height: 100%;

	margin: 0 !important;
	padding: 16px;

	background: #ffffff;

	border: 1px solid #dce5d7;
	border-radius: 17px;

	box-shadow: 0 8px 24px rgba(38, 50, 38, 0.05);

	overflow: hidden;

	transition:
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


body.post-type-archive-product
ul.products
li.product:hover,
body.tax-product_cat
ul.products
li.product:hover,
body.tax-product_tag
ul.products
li.product:hover {
	border-color: #bfd0b5;

	transform: translateY(-3px);

	box-shadow: 0 13px 30px rgba(38, 50, 38, 0.09);
}


/* =========================================================
   MAIN PRODUCT LINK
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.woocommerce-LoopProduct-link,
body.tax-product_cat
ul.products
li.product
.woocommerce-LoopProduct-link,
body.tax-product_tag
ul.products
li.product
.woocommerce-LoopProduct-link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;

	min-width: 0;

	color: inherit;

	text-decoration: none;
}


/* =========================================================
   PRODUCT IMAGES
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
img,
body.tax-product_cat
ul.products
li.product
img,
body.tax-product_tag
ul.products
li.product
img {
	display: block;

	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;

	margin: 0 0 18px !important;

	object-fit: cover;

	background: #f5f3ec;

	border: 0;
	border-radius: 12px;

	box-shadow: none;
}


/* Themify image wrapper */

body.post-type-archive-product
ul.products
li.product
.product-image,
body.tax-product_cat
ul.products
li.product
.product-image,
body.tax-product_tag
ul.products
li.product
.product-image {
	position: relative;

	width: 100%;

	margin: 0 0 18px;

	overflow: hidden;

	border-radius: 12px;
}


body.post-type-archive-product
ul.products
li.product
.product-image img,
body.tax-product_cat
ul.products
li.product
.product-image img,
body.tax-product_tag
ul.products
li.product
.product-image img {
	margin-bottom: 0 !important;
}


/* =========================================================
   PRODUCT TITLES
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
h2,
body.post-type-archive-product
ul.products
li.product
.woocommerce-loop-product__title,
body.post-type-archive-product
ul.products
li.product
.product_title,

body.tax-product_cat
ul.products
li.product
h2,
body.tax-product_cat
ul.products
li.product
.woocommerce-loop-product__title,
body.tax-product_cat
ul.products
li.product
.product_title,

body.tax-product_tag
ul.products
li.product
h2,
body.tax-product_tag
ul.products
li.product
.woocommerce-loop-product__title,
body.tax-product_tag
ul.products
li.product
.product_title {
	margin: 0 0 10px !important;
	padding: 0 !important;

	color: #263226;

	font-family: inherit !important;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;

	overflow-wrap: anywhere;
}


body.post-type-archive-product
ul.products
li.product
a:hover
.woocommerce-loop-product__title,
body.tax-product_cat
ul.products
li.product
a:hover
.woocommerce-loop-product__title,
body.tax-product_tag
ul.products
li.product
a:hover
.woocommerce-loop-product__title {
	color: #176b2b;
}


/* =========================================================
   PRODUCT PRICES
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.price,
body.tax-product_cat
ul.products
li.product
.price,
body.tax-product_tag
ul.products
li.product
.price {
	display: block;

	margin: 0 0 12px !important;

	color: #176b2b !important;

	font-family: inherit;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
}


body.post-type-archive-product
ul.products
li.product
.price
.amount,
body.post-type-archive-product
ul.products
li.product
.price
.woocommerce-Price-amount,
body.post-type-archive-product
ul.products
li.product
.price
.woocommerce-Price-currencySymbol,

body.tax-product_cat
ul.products
li.product
.price
.amount,
body.tax-product_cat
ul.products
li.product
.price
.woocommerce-Price-amount,
body.tax-product_cat
ul.products
li.product
.price
.woocommerce-Price-currencySymbol,

body.tax-product_tag
ul.products
li.product
.price
.amount,
body.tax-product_tag
ul.products
li.product
.price
.woocommerce-Price-amount,
body.tax-product_tag
ul.products
li.product
.price
.woocommerce-Price-currencySymbol {
	color: #176b2b !important;
	font-weight: 700;
}


body.post-type-archive-product
ul.products
li.product
.price del,
body.tax-product_cat
ul.products
li.product
.price del,
body.tax-product_tag
ul.products
li.product
.price del {
	margin-right: 6px;

	color: #7b8679;

	font-size: 14px;

	opacity: 0.7;
}


body.post-type-archive-product
ul.products
li.product
.price ins,
body.tax-product_cat
ul.products
li.product
.price ins,
body.tax-product_tag
ul.products
li.product
.price ins {
	text-decoration: none;
}


/* =========================================================
   PRODUCT DESCRIPTIONS
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.product-description,
body.post-type-archive-product
ul.products
li.product
.entry-content,
body.post-type-archive-product
ul.products
li.product
.product-excerpt,

body.tax-product_cat
ul.products
li.product
.product-description,
body.tax-product_cat
ul.products
li.product
.entry-content,
body.tax-product_cat
ul.products
li.product
.product-excerpt,

body.tax-product_tag
ul.products
li.product
.product-description,
body.tax-product_tag
ul.products
li.product
.entry-content,
body.tax-product_tag
ul.products
li.product
.product-excerpt {
	display: -webkit-box;

	overflow: hidden;

	margin: 0 0 18px;

	color: #687465;

	font-family: inherit;
	font-size: 14px;
	line-height: 1.55;

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}


body.post-type-archive-product
ul.products
li.product
.product-description p,
body.post-type-archive-product
ul.products
li.product
.entry-content p,

body.tax-product_cat
ul.products
li.product
.product-description p,
body.tax-product_cat
ul.products
li.product
.entry-content p,

body.tax-product_tag
ul.products
li.product
.product-description p,
body.tax-product_tag
ul.products
li.product
.entry-content p {
	margin: 0;
}


/* =========================================================
   ADD TO BASKET BUTTON
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.button,
body.tax-product_cat
ul.products
li.product
.button,
body.tax-product_tag
ul.products
li.product
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	align-self: flex-start;

	min-height: 43px;

	margin: auto 0 0 !important;
	padding: 10px 18px;

	background: #8fb468 !important;
	color: #ffffff !important;

	border: 1px solid #8fb468 !important;
	border-radius: 11px;

	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;

	text-decoration: none;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


body.post-type-archive-product
ul.products
li.product
.button:hover,
body.post-type-archive-product
ul.products
li.product
.button:focus,

body.tax-product_cat
ul.products
li.product
.button:hover,
body.tax-product_cat
ul.products
li.product
.button:focus,

body.tax-product_tag
ul.products
li.product
.button:hover,
body.tax-product_tag
ul.products
li.product
.button:focus {
	background: #7ea456 !important;
	color: #ffffff !important;

	border-color: #7ea456 !important;

	transform: translateY(-1px);

	box-shadow: 0 6px 16px rgba(65, 105, 55, 0.15);

	text-decoration: none;

	outline: none;
}


/* Added-to-basket confirmation link */

body.post-type-archive-product
ul.products
li.product
.added_to_cart,
body.tax-product_cat
ul.products
li.product
.added_to_cart,
body.tax-product_tag
ul.products
li.product
.added_to_cart {
	display: inline-flex;
	align-items: center;

	margin: 10px 0 0;
	padding: 7px 0;

	color: #176b2b;

	font-size: 13px;
	font-weight: 700;

	text-decoration: underline;
	text-underline-offset: 3px;
}


/* =========================================================
   SALE BADGE
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.onsale,
body.tax-product_cat
ul.products
li.product
.onsale,
body.tax-product_tag
ul.products
li.product
.onsale {
	position: absolute;
	top: 26px;
	left: 26px;
	z-index: 5;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 58px;
	min-height: 32px;

	margin: 0;
	padding: 6px 10px;

	background: #176b2b;
	color: #ffffff;

	border: 2px solid #ffffff;
	border-radius: 9px;

	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;

	box-shadow: 0 4px 12px rgba(25, 54, 27, 0.16);
}


/* =========================================================
   PRODUCT RATINGS
   ========================================================= */

body.post-type-archive-product
ul.products
li.product
.star-rating,
body.tax-product_cat
ul.products
li.product
.star-rating,
body.tax-product_tag
ul.products
li.product
.star-rating {
	margin: 0 0 12px;

	color: #8fb468;
}


/* =========================================================
   PAGINATION
   ========================================================= */

body.post-type-archive-product
.woocommerce-pagination,
body.tax-product_cat
.woocommerce-pagination,
body.tax-product_tag
.woocommerce-pagination {
	clear: both;

	margin: 38px 0 0;
}


body.post-type-archive-product
.woocommerce-pagination
ul.page-numbers,
body.tax-product_cat
.woocommerce-pagination
ul.page-numbers,
body.tax-product_tag
.woocommerce-pagination
ul.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;

	margin: 0;
	padding: 0;

	border: 0;

	list-style: none;
}


body.post-type-archive-product
.woocommerce-pagination
.page-numbers
li,
body.tax-product_cat
.woocommerce-pagination
.page-numbers
li,
body.tax-product_tag
.woocommerce-pagination
.page-numbers
li {
	margin: 0;

	border: 0;
}


body.post-type-archive-product
.woocommerce-pagination
.page-numbers
a,
body.post-type-archive-product
.woocommerce-pagination
.page-numbers
span,

body.tax-product_cat
.woocommerce-pagination
.page-numbers
a,
body.tax-product_cat
.woocommerce-pagination
.page-numbers
span,

body.tax-product_tag
.woocommerce-pagination
.page-numbers
a,
body.tax-product_tag
.woocommerce-pagination
.page-numbers
span {
	display: flex;
	align-items: center;
	justify-content: center;

	min-width: 42px;
	height: 42px;

	padding: 8px 12px;

	background: #ffffff;
	color: #263226;

	border: 1px solid #d5dfd1;
	border-radius: 10px;

	font-size: 14px;
	font-weight: 700;

	text-decoration: none;
}


body.post-type-archive-product
.woocommerce-pagination
.page-numbers
span.current,
body.tax-product_cat
.woocommerce-pagination
.page-numbers
span.current,
body.tax-product_tag
.woocommerce-pagination
.page-numbers
span.current {
	background: #8fb468;
	color: #ffffff;

	border-color: #8fb468;
}


body.post-type-archive-product
.woocommerce-pagination
.page-numbers
a:hover,
body.post-type-archive-product
.woocommerce-pagination
.page-numbers
a:focus,

body.tax-product_cat
.woocommerce-pagination
.page-numbers
a:hover,
body.tax-product_cat
.woocommerce-pagination
.page-numbers
a:focus,

body.tax-product_tag
.woocommerce-pagination
.page-numbers
a:hover,
body.tax-product_tag
.woocommerce-pagination
.page-numbers
a:focus {
	background: #eef3e9;
	color: #176b2b;

	border-color: #bfd0b5;

	outline: none;
}


/* =========================================================
   WOOCOMMERCE MESSAGES
   ========================================================= */

body.post-type-archive-product
.woocommerce-message,
body.post-type-archive-product
.woocommerce-info,
body.post-type-archive-product
.woocommerce-error,

body.tax-product_cat
.woocommerce-message,
body.tax-product_cat
.woocommerce-info,
body.tax-product_cat
.woocommerce-error,

body.tax-product_tag
.woocommerce-message,
body.tax-product_tag
.woocommerce-info,
body.tax-product_tag
.woocommerce-error {
	margin: 0 0 24px;
	padding: 16px 18px 16px 50px;

	border: 1px solid;
	border-radius: 12px;

	font-size: 14px;
	line-height: 1.5;
}


body.post-type-archive-product
.woocommerce-message,
body.tax-product_cat
.woocommerce-message,
body.tax-product_tag
.woocommerce-message {
	background: #edf7e9;
	color: #285a28;

	border-color: #b9d4ae;
}


body.post-type-archive-product
.woocommerce-info,
body.tax-product_cat
.woocommerce-info,
body.tax-product_tag
.woocommerce-info {
	background: #f0f6fb;
	color: #28516d;

	border-color: #b9d3e4;
}


body.post-type-archive-product
.woocommerce-error,
body.tax-product_cat
.woocommerce-error,
body.tax-product_tag
.woocommerce-error {
	background: #fff1f0;
	color: #842925;

	border-color: #e7b5b2;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1024px) {

	body.post-type-archive-product #content,
	body.tax-product_cat #content,
	body.tax-product_tag #content {
		width: calc(100% - 34px);

		padding-top: 34px;
	}


	body.post-type-archive-product
	ul.products,
	body.tax-product_cat
	ul.products,
	body.tax-product_tag
	ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 22px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	body.post-type-archive-product #content,
	body.tax-product_cat #content,
	body.tax-product_tag #content {
		width: calc(100% - 24px);

		padding: 24px 0 50px;
	}


	body.post-type-archive-product
	.woocommerce-products-header__title,
	body.post-type-archive-product
	.page-title,

	body.tax-product_cat
	.woocommerce-products-header__title,
	body.tax-product_cat
	.page-title,

	body.tax-product_tag
	.woocommerce-products-header__title,
	body.tax-product_tag
	.page-title {
		font-size: 34px;
	}


	body.post-type-archive-product
	.woocommerce-result-count,
	body.tax-product_cat
	.woocommerce-result-count,
	body.tax-product_tag
	.woocommerce-result-count {
		float: none;

		display: block;

		width: 100%;

		margin-bottom: 12px;

		text-align: center;
	}


	body.post-type-archive-product
	.woocommerce-ordering,
	body.tax-product_cat
	.woocommerce-ordering,
	body.tax-product_tag
	.woocommerce-ordering {
		float: none;

		width: 100%;

		margin-bottom: 22px;
	}


	body.post-type-archive-product
	.woocommerce-ordering select,
	body.tax-product_cat
	.woocommerce-ordering select,
	body.tax-product_tag
	.woocommerce-ordering select {
		width: 100%;
	}


	body.post-type-archive-product
	ul.products,
	body.tax-product_cat
	ul.products,
	body.tax-product_tag
	ul.products {
		grid-template-columns: 1fr;

		gap: 17px;
	}


	body.post-type-archive-product
	ul.products
	li.product,
	body.tax-product_cat
	ul.products
	li.product,
	body.tax-product_tag
	ul.products
	li.product {
		display: grid;
		grid-template-columns: 122px minmax(0, 1fr);
		grid-template-areas:
			"image content"
			"image button";

		gap: 0 15px;

		padding: 13px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-LoopProduct-link,
	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-LoopProduct-link,
	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-LoopProduct-link {
		display: contents;
	}


	body.post-type-archive-product
	ul.products
	li.product
	img,
	body.tax-product_cat
	ul.products
	li.product
	img,
	body.tax-product_tag
	ul.products
	li.product
	img {
		grid-area: image;

		width: 122px;
		height: 122px;

		margin: 0 !important;

		aspect-ratio: 1 / 1;

		border-radius: 10px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.product-image,
	body.tax-product_cat
	ul.products
	li.product
	.product-image,
	body.tax-product_tag
	ul.products
	li.product
	.product-image {
		grid-area: image;

		width: 122px;
		height: 122px;

		margin: 0;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.product-image img,
	body.tax-product_cat
	ul.products
	li.product
	.product-image img,
	body.tax-product_tag
	ul.products
	li.product
	.product-image img {
		width: 122px;
		height: 122px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	h2,
	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_cat
	ul.products
	li.product
	h2,
	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_tag
	ul.products
	li.product
	h2,
	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-loop-product__title {
		grid-area: content;

		margin-bottom: 6px !important;

		font-size: 16px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.price,
	body.tax-product_cat
	ul.products
	li.product
	.price,
	body.tax-product_tag
	ul.products
	li.product
	.price {
		grid-area: content;

		align-self: end;

		margin: 45px 0 0 !important;

		font-size: 16px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.product-description,
	body.post-type-archive-product
	ul.products
	li.product
	.entry-content,

	body.tax-product_cat
	ul.products
	li.product
	.product-description,
	body.tax-product_cat
	ul.products
	li.product
	.entry-content,

	body.tax-product_tag
	ul.products
	li.product
	.product-description,
	body.tax-product_tag
	ul.products
	li.product
	.entry-content {
		display: none;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.button,
	body.tax-product_cat
	ul.products
	li.product
	.button,
	body.tax-product_tag
	ul.products
	li.product
	.button {
		grid-area: button;

		align-self: end;

		min-height: 38px;

		margin-top: 9px !important;
		padding: 8px 12px;

		font-size: 12px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.onsale,
	body.tax-product_cat
	ul.products
	li.product
	.onsale,
	body.tax-product_tag
	ul.products
	li.product
	.onsale {
		top: 18px;
		left: 18px;
	}
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media screen and (max-width: 390px) {

	body.post-type-archive-product #content,
	body.tax-product_cat #content,
	body.tax-product_tag #content {
		width: calc(100% - 18px);
	}


	body.post-type-archive-product
	ul.products
	li.product,
	body.tax-product_cat
	ul.products
	li.product,
	body.tax-product_tag
	ul.products
	li.product {
		grid-template-columns: 100px minmax(0, 1fr);

		gap: 0 11px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	img,
	body.post-type-archive-product
	ul.products
	li.product
	.product-image,
	body.post-type-archive-product
	ul.products
	li.product
	.product-image
	img,

	body.tax-product_cat
	ul.products
	li.product
	img,
	body.tax-product_cat
	ul.products
	li.product
	.product-image,
	body.tax-product_cat
	ul.products
	li.product
	.product-image
	img,

	body.tax-product_tag
	ul.products
	li.product
	img,
	body.tax-product_tag
	ul.products
	li.product
	.product-image,
	body.tax-product_tag
	ul.products
	li.product
	.product-image
	img {
		width: 100px;
		height: 100px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	h2,
	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_cat
	ul.products
	li.product
	h2,
	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_tag
	ul.products
	li.product
	h2,
	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-loop-product__title {
		font-size: 14px;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.price,
	body.tax-product_cat
	ul.products
	li.product
	.price,
	body.tax-product_tag
	ul.products
	li.product
	.price {
		margin-top: 38px !important;

		font-size: 15px;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.post-type-archive-product #content *,
	body.post-type-archive-product #content *::before,
	body.post-type-archive-product #content *::after,

	body.tax-product_cat #content *,
	body.tax-product_cat #content *::before,
	body.tax-product_cat #content *::after,

	body.tax-product_tag #content *,
	body.tax-product_tag #content *::before,
	body.tax-product_tag #content *::after {
		transition: none !important;
		transform: none;
	}
}

/* =========================================================
   JM FINAL SHOP GRID + QUICK VIEW OVERRIDES
   Keep this block at the very end of the CSS file.
   ========================================================= */

body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    justify-items:stretch!important;
    gap:28px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    transform:none!important;
}

body.post-type-archive-product ul.products::before,
body.post-type-archive-product ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
    display:none!important;
    content:none!important;
}

body.post-type-archive-product ul.products>li.product,
body.tax-product_cat ul.products>li.product,
body.tax-product_tag ul.products>li.product,
body.post-type-archive-product ul.products>li.product.first,
body.post-type-archive-product ul.products>li.product.last,
body.tax-product_cat ul.products>li.product.first,
body.tax-product_cat ul.products>li.product.last,
body.tax-product_tag ul.products>li.product.first,
body.tax-product_tag ul.products>li.product.last {
    clear:none!important;
    float:none!important;
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
}

body.post-type-archive-product ul.products>li:empty,
body.tax-product_cat ul.products>li:empty,
body.tax-product_tag ul.products>li:empty {display:none!important;}

body.post-type-archive-product ul.products>li.product,
body.tax-product_cat ul.products>li.product,
body.tax-product_tag ul.products>li.product {
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
}

body.post-type-archive-product ul.products li.product .woocommerce-LoopProduct-link,
body.tax-product_cat ul.products li.product .woocommerce-LoopProduct-link,
body.tax-product_tag ul.products li.product .woocommerce-LoopProduct-link {
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
}

body.post-type-archive-product .jm-shop-actions,
body.tax-product_cat .jm-shop-actions,
body.tax-product_tag .jm-shop-actions {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    margin:auto 0 0!important;
    padding:15px 0 0!important;
}

body.post-type-archive-product button.jm-shop-view-details,
body.tax-product_cat button.jm-shop-view-details,
body.tax-product_tag button.jm-shop-view-details {
    position:static!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    margin:0!important;
    padding:10px 12px!important;
    appearance:none!important;
    -webkit-appearance:none!important;
    background:#eef3e9!important;
    background-image:none!important;
    color:#176b2b!important;
    border:1px solid #bfd0b5!important;
    border-radius:11px!important;
    font-family:inherit!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.2!important;
    text-align:center!important;
    text-transform:none!important;
    cursor:pointer!important;
    box-shadow:none!important;
    transform:none!important;
}

body.post-type-archive-product button.jm-shop-view-details:hover,
body.post-type-archive-product button.jm-shop-view-details:focus,
body.tax-product_cat button.jm-shop-view-details:hover,
body.tax-product_cat button.jm-shop-view-details:focus,
body.tax-product_tag button.jm-shop-view-details:hover,
body.tax-product_tag button.jm-shop-view-details:focus {
    background:#dfead7!important;
    color:#104f20!important;
    border-color:#a9c09b!important;
    outline:none!important;
}

body.post-type-archive-product .jm-shop-actions a.button,
body.tax-product_cat .jm-shop-actions a.button,
body.tax-product_tag .jm-shop-actions a.button {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    margin:0!important;
    padding:10px 12px!important;
    background:#8fb468!important;
    color:#fff!important;
    border:1px solid #8fb468!important;
    border-radius:11px!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.2!important;
    text-align:center!important;
    text-transform:none!important;
    white-space:normal!important;
    box-shadow:none!important;
}

.jm-quick-view {
    position:fixed!important;
    inset:0!important;
    z-index:2147483000!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100vw!important;
    height:100vh!important;
    margin:0!important;
    padding:24px!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    overflow:hidden!important;
}

.jm-quick-view.is-open {
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
}

body.jm-quick-view-open {overflow:hidden!important;}

.jm-quick-view__overlay {
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    background:rgba(17,27,18,.68)!important;
    opacity:0!important;
    border:0!important;
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    transition:opacity .22s ease!important;
}

.jm-quick-view.is-open .jm-quick-view__overlay {opacity:1!important;}

.jm-quick-view__dialog {
    position:relative!important;
    z-index:2!important;
    display:flex!important;
    flex-direction:column!important;
    width:min(900px,100%)!important;
    max-width:900px!important;
    max-height:calc(100vh - 48px)!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fff!important;
    color:#263226!important;
    border:1px solid #d7e1d2!important;
    border-radius:19px!important;
    box-shadow:0 28px 80px rgba(10,22,12,.34)!important;
    opacity:0!important;
    transform:translateY(18px) scale(.98)!important;
    transition:opacity .22s ease,transform .22s ease!important;
}

.jm-quick-view.is-open .jm-quick-view__dialog {
    opacity:1!important;
    transform:translateY(0) scale(1)!important;
}

.jm-quick-view__header {
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:20px!important;
    width:100%!important;
    margin:0!important;
    padding:19px 22px!important;
    background:#f5f3ec!important;
    border-bottom:1px solid #dfe5da!important;
}

.jm-quick-view__eyebrow {
    margin:0 0 4px!important;
    color:#687465!important;
    font-size:12px!important;
    font-weight:700!important;
    letter-spacing:.05em!important;
    text-transform:uppercase!important;
}

.jm-quick-view__heading {
    margin:0!important;
    color:#176b2b!important;
    font-size:25px!important;
    font-weight:700!important;
    line-height:1.2!important;
}

button.jm-quick-view__close {
    position:static!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 44px!important;
    width:44px!important;
    height:44px!important;
    margin:0!important;
    padding:0!important;
    background:#176b2b!important;
    color:#fff!important;
    border:1px solid #176b2b!important;
    border-radius:11px!important;
    font-family:Arial,sans-serif!important;
    font-size:30px!important;
    line-height:1!important;
    box-shadow:none!important;
}

.jm-quick-view__content {
    display:grid!important;
    grid-template-columns:minmax(280px,.95fr) minmax(0,1.05fr)!important;
    gap:28px!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:25px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    background:#fff!important;
}

.jm-quick-view__image img {
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    object-fit:cover!important;
    border-radius:15px!important;
}

.jm-quick-view__price {
    margin:0 0 18px!important;
    color:#176b2b!important;
    font-size:24px!important;
    font-weight:700!important;
}

.jm-quick-view__description {
    margin:0!important;
    padding:18px 20px!important;
    background:#f9faf7!important;
    color:#566054!important;
    border:1px solid #dce5d7!important;
    border-radius:13px!important;
    font-size:16px!important;
    line-height:1.65!important;
}

.jm-quick-view__meta {
    margin:18px 0 0!important;
    padding:14px 16px!important;
    background:#f5f3ec!important;
    border:1px solid #dfe5da!important;
    border-radius:11px!important;
}

.jm-quick-view__actions {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    margin:20px 0 0!important;
}

.jm-quick-view__basket,
button.jm-quick-view__continue {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:47px!important;
    margin:0!important;
    padding:11px 14px!important;
    border-radius:11px!important;
    font-size:14px!important;
    font-weight:700!important;
    text-align:center!important;
    text-decoration:none!important;
}

.jm-quick-view__basket {
    background:#8fb468!important;
    color:#fff!important;
    border:1px solid #8fb468!important;
}

button.jm-quick-view__continue {
    background:#eef3e9!important;
    color:#176b2b!important;
    border:1px solid #bfd0b5!important;
}

@media screen and (max-width:1024px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:22px!important;
    }
}

@media screen and (max-width:680px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns:1fr!important;
        gap:17px!important;
    }

    body.post-type-archive-product .jm-shop-actions,
    body.tax-product_cat .jm-shop-actions,
    body.tax-product_tag .jm-shop-actions {
        grid-area:button!important;
        gap:7px!important;
        margin-top:9px!important;
        padding-top:0!important;
    }

    body.post-type-archive-product button.jm-shop-view-details,
    body.post-type-archive-product .jm-shop-actions a.button,
    body.tax-product_cat button.jm-shop-view-details,
    body.tax-product_cat .jm-shop-actions a.button,
    body.tax-product_tag button.jm-shop-view-details,
    body.tax-product_tag .jm-shop-actions a.button {
        min-height:38px!important;
        padding:8px 7px!important;
        border-radius:9px!important;
        font-size:11px!important;
    }

    .jm-quick-view {align-items:flex-end!important;padding:10px!important;}
    .jm-quick-view__dialog {width:100%!important;max-width:none!important;max-height:calc(100vh - 20px)!important;border-radius:16px!important;}
    .jm-quick-view__header {padding:16px!important;}
    .jm-quick-view__heading {font-size:21px!important;}
    .jm-quick-view__content {grid-template-columns:1fr!important;gap:19px!important;padding:16px!important;}
    .jm-quick-view__image {width:100%!important;max-width:330px!important;margin:0 auto!important;}
}

@media screen and (max-width:420px) {
    .jm-quick-view {padding:0!important;}
    .jm-quick-view__dialog {height:100%!important;max-height:100%!important;border:0!important;border-radius:0!important;}
    .jm-quick-view__actions {grid-template-columns:1fr!important;}
}


/* =========================================================
   JM THEMED EMPTY BASKET PAGE
   Uses the same empty-basket artwork as the slide-out basket
   ========================================================= */

/* Main empty basket page area */

body.woocommerce-cart .wp-block-woocommerce-cart.is-empty,
body.woocommerce-cart .wc-block-cart.is-empty,
body.woocommerce-cart .wc-block-cart__empty-cart {
	width: 100%;
	max-width: 1440px;

	margin: 0 auto;
	padding: 45px 24px 70px;

	background: #f5f3ec;

	border-radius: 22px;
}


/* Remove WooCommerce's default sad-face icon */

body.woocommerce-cart
.wc-block-cart__empty-cart__title::before,
body.woocommerce-cart
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
body.woocommerce-cart
.wc-block-cart__empty-cart__title.has-empty-cart-icon::before {
	content: "" !important;

	display: block !important;

	width: 190px !important;
	height: 190px !important;

	margin: 0 auto 25px !important;

	background-color: transparent !important;
	background-image: url("https://www.jmfltd.com/wp-content/uploads/2026/07/Your-Basket-Empty.webp") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;

	font-size: 0 !important;
	line-height: 0 !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;

	transform: none !important;
}


/* Empty basket heading */

body.woocommerce-cart
.wc-block-cart__empty-cart__title {
	max-width: 780px;

	margin: 0 auto 14px !important;
	padding: 0 !important;

	color: #176b2b !important;

	font-family: inherit !important;
	font-size: clamp(30px, 4vw, 44px) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	text-align: center !important;
	text-transform: none !important;
}


/* Optional description underneath the heading */

body.woocommerce-cart
.wc-block-cart__empty-cart__description {
	max-width: 620px;

	margin: 0 auto 32px !important;
	padding: 0 !important;

	color: #52604f !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	text-align: center !important;
}


/* Dotted divider between empty message and products */

body.woocommerce-cart
.wc-block-cart__empty-cart__products-title::before {
	content: "•   •   •";

	display: block;

	margin: 0 0 25px;

	color: #8fa286;

	font-size: 15px;
	font-weight: 700;
	letter-spacing: 20px;
	line-height: 1;
	text-align: center;
}


/* New in store heading */

body.woocommerce-cart
.wc-block-cart__empty-cart__products-title {
	margin: 30px 0 30px !important;
	padding: 0 !important;

	color: #263226 !important;

	font-family: inherit !important;
	font-size: clamp(28px, 3vw, 38px) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-transform: none !important;
}


/* Recommended product grid */

body.woocommerce-cart
.wc-block-grid,
body.woocommerce-cart
.wc-block-cart__empty-cart .wc-block-grid {
	width: 100%;
	max-width: 1380px;

	margin: 0 auto !important;
	padding: 0 !important;
}


/* Four equal product columns */

body.woocommerce-cart
.wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	align-items: stretch !important;
	gap: 24px !important;

	width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	list-style: none !important;
}


/* Individual product card */

body.woocommerce-cart
.wc-block-grid__product {
	display: flex !important;
	flex-direction: column !important;

	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 16px 16px 20px !important;

	background: #ffffff !important;

	border: 1px solid #dbe4d5 !important;
	border-radius: 17px !important;

	box-shadow: 0 7px 22px rgba(38, 50, 38, 0.06) !important;

	overflow: hidden !important;

	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		border-color 0.2s ease !important;
}


body.woocommerce-cart
.wc-block-grid__product:hover {
	border-color: #bfd0b5 !important;

	box-shadow: 0 11px 28px rgba(38, 50, 38, 0.11) !important;

	transform: translateY(-3px) !important;
}


/* Product image link */

body.woocommerce-cart
.wc-block-grid__product-image {
	display: block !important;

	width: 100% !important;
	margin: 0 0 18px !important;

	border-radius: 12px !important;

	overflow: hidden !important;
}


/* Product images */

body.woocommerce-cart
.wc-block-grid__product-image img {
	display: block !important;

	width: 100% !important;
	height: 265px !important;

	margin: 0 !important;

	object-fit: cover !important;
	object-position: center !important;

	border-radius: 12px !important;

	transition: transform 0.25s ease !important;
}


body.woocommerce-cart
.wc-block-grid__product:hover
.wc-block-grid__product-image img {
	transform: scale(1.025) !important;
}


/* Product title container */

body.woocommerce-cart
.wc-block-grid__product-title {
	min-height: 52px !important;

	margin: 0 0 10px !important;
	padding: 0 4px !important;

	color: #176b2b !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	text-align: center !important;
	text-transform: none !important;
}


/* Product title links — removes the current red */

body.woocommerce-cart
.wc-block-grid__product-title a,
body.woocommerce-cart
.wc-block-grid__product-link,
body.woocommerce-cart
.wc-block-grid__product a {
	color: #176b2b !important;

	text-decoration: none !important;
}


body.woocommerce-cart
.wc-block-grid__product-title a:hover,
body.woocommerce-cart
.wc-block-grid__product-title a:focus,
body.woocommerce-cart
.wc-block-grid__product-link:hover,
body.woocommerce-cart
.wc-block-grid__product-link:focus {
	color: #104f20 !important;

	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;

	outline: none !important;
}


/* Product price */

body.woocommerce-cart
.wc-block-grid__product-price {
	margin: auto 0 17px !important;
	padding: 0 4px !important;

	color: #394438 !important;

	font-family: inherit !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-align: center !important;
}


/* Sale and regular prices */

body.woocommerce-cart
.wc-block-grid__product-price del {
	color: #788176 !important;

	opacity: 0.75 !important;
}


body.woocommerce-cart
.wc-block-grid__product-price ins {
	color: #176b2b !important;

	font-weight: 700 !important;
	text-decoration: none !important;
}


/* Add to basket button wrapper */

body.woocommerce-cart
.wc-block-grid__product-add-to-cart {
	width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	text-align: center !important;
}


/* Add to basket buttons */

body.woocommerce-cart
.wc-block-grid__product-add-to-cart
.wp-block-button,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
.wp-block-button__link,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
a,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 160px !important;
	min-height: 48px !important;

	margin: 0 auto !important;
	padding: 12px 21px !important;

	background: #8fb468 !important;
	background-image: none !important;
	color: #ffffff !important;

	border: 1px solid #8fb468 !important;
	border-radius: 12px !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;

	box-shadow: none !important;

	cursor: pointer !important;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease !important;
}


body.woocommerce-cart
.wc-block-grid__product-add-to-cart
.wp-block-button__link:hover,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
.wp-block-button__link:focus,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
a:hover,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
a:focus,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
button:hover,
body.woocommerce-cart
.wc-block-grid__product-add-to-cart
button:focus {
	background: #7ea456 !important;
	color: #ffffff !important;

	border-color: #7ea456 !important;

	box-shadow: 0 7px 17px rgba(67, 99, 54, 0.18) !important;

	transform: translateY(-1px) !important;

	text-decoration: none !important;

	outline: none !important;
}


/* Added-to-basket confirmation link */

body.woocommerce-cart
.wc-block-grid__product-add-to-cart
.added_to_cart {
	display: block !important;

	width: fit-content !important;
	min-width: 0 !important;
	min-height: 0 !important;

	margin: 10px auto 0 !important;
	padding: 0 !important;

	background: transparent !important;
	color: #176b2b !important;

	border: 0 !important;
	border-radius: 0 !important;

	font-size: 14px !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;

	box-shadow: none !important;
}


/* Product sale badge */

body.woocommerce-cart
.wc-block-grid__product-onsale {
	top: 26px !important;
	right: 26px !important;
	left: auto !important;

	margin: 0 !important;
	padding: 7px 11px !important;

	background: #176b2b !important;
	color: #ffffff !important;

	border: 0 !important;
	border-radius: 999px !important;

	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-transform: none !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1100px) {

	body.woocommerce-cart .wp-block-woocommerce-cart.is-empty,
	body.woocommerce-cart .wc-block-cart.is-empty,
	body.woocommerce-cart .wc-block-cart__empty-cart {
		padding: 38px 20px 55px;
	}


	body.woocommerce-cart
	.wc-block-grid__products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 20px !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product-image img {
		height: 300px !important;
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	body.woocommerce-cart .wp-block-woocommerce-cart.is-empty,
	body.woocommerce-cart .wc-block-cart.is-empty,
	body.woocommerce-cart .wc-block-cart__empty-cart {
		padding: 28px 14px 42px;

		border-radius: 15px;
	}


	body.woocommerce-cart
	.wc-block-cart__empty-cart__title::before,
	body.woocommerce-cart
	.wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
	body.woocommerce-cart
	.wc-block-cart__empty-cart__title.has-empty-cart-icon::before {
		width: 145px !important;
		height: 145px !important;

		margin-bottom: 20px !important;
	}


	body.woocommerce-cart
	.wc-block-cart__empty-cart__title {
		font-size: 30px !important;
		line-height: 1.2 !important;
	}


	body.woocommerce-cart
	.wc-block-cart__empty-cart__description {
		font-size: 15px !important;
	}


	body.woocommerce-cart
	.wc-block-cart__empty-cart__products-title {
		margin-top: 25px !important;

		font-size: 28px !important;
	}


	body.woocommerce-cart
	.wc-block-grid__products {
		grid-template-columns: 1fr !important;
		gap: 18px !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product {
		padding: 13px 13px 18px !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product-image img {
		height: auto !important;
		aspect-ratio: 1 / 1 !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product-title {
		min-height: 0 !important;

		font-size: 17px !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	.wp-block-button,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	.wp-block-button__link,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	a,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	button {
		width: 100% !important;
		min-width: 0 !important;
	}

}


/* Respect visitors who have reduced animation enabled */

@media (prefers-reduced-motion: reduce) {

	body.woocommerce-cart
	.wc-block-grid__product,
	body.woocommerce-cart
	.wc-block-grid__product-image img,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	a,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	button {
		transition: none !important;
	}


	body.woocommerce-cart
	.wc-block-grid__product:hover,
	body.woocommerce-cart
	.wc-block-grid__product:hover
	.wc-block-grid__product-image img,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	a:hover,
	body.woocommerce-cart
	.wc-block-grid__product-add-to-cart
	button:hover {
		transform: none !important;
	}

}


/* =========================================================
   FINAL EMPTY BASKET IMAGE FIX
   Places the image directly inside the empty basket heading
   ========================================================= */


/* Remove any earlier generated basket or sad-face icons */

body.woocommerce-cart
.wc-block-cart__empty-cart::before,

body.woocommerce-cart
.wc-block-cart__empty-cart__title::before,

body.woocommerce-cart
.wc-block-cart__empty-cart__title::after,

body.woocommerce-cart
.wc-block-cart__empty-cart-icon {
	content: none !important;

	display: none !important;

	width: 0 !important;
	height: 0 !important;

	margin: 0 !important;
	padding: 0 !important;

	background: none !important;
	background-image: none !important;

	-webkit-mask-image: none !important;
	mask-image: none !important;
}


/* Put the JM basket image directly above the heading text */

body.woocommerce-cart
.wc-block-cart__empty-cart__title {
	display: block !important;

	width: 100% !important;
	max-width: 900px !important;

	margin: 0 auto 14px !important;
	padding: 205px 20px 0 !important;

	background-color: transparent !important;
	background-image: url("https://www.jmfltd.com/wp-content/uploads/2026/07/Your-Basket-Empty.webp") !important;
	background-repeat: no-repeat !important;
	background-position: center top !important;
	background-size: 180px auto !important;

	color: #176b2b !important;

	font-family: inherit !important;
	font-size: clamp(32px, 4vw, 48px) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	text-align: center !important;
	text-transform: none !important;

	overflow: visible !important;

	opacity: 1 !important;
	visibility: visible !important;
}


/* Ensure no parent container clips the basket */

body.woocommerce-cart
.wc-block-cart__empty-cart,

body.woocommerce-cart
.wp-block-woocommerce-cart.is-empty,

body.woocommerce-cart
.wc-block-cart.is-empty {
	overflow: visible !important;
}


/* Tablet */

@media screen and (max-width: 900px) {

	body.woocommerce-cart
	.wc-block-cart__empty-cart__title {
		padding-top: 180px !important;

		background-size: 155px auto !important;
	}

}


/* Mobile */

@media screen and (max-width: 680px) {

	body.woocommerce-cart
	.wc-block-cart__empty-cart__title {
		padding: 150px 12px 0 !important;

		background-size: 130px auto !important;

		font-size: 30px !important;
	}

}


/* =========================================================
   FIX OVERSIZED VIEW DETAILS BUTTON ON SHOP PRODUCT CARDS
   ========================================================= */

/* Product action and description row */

.woocommerce ul.products li.product .jm-product-actions,
.woocommerce ul.products li.product .product-actions,
.woocommerce ul.products li.product .product-detail-row,
.woocommerce ul.products li.product .jm-product-detail-row {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;

	width: 100% !important;
}


/* View details button — prevent stretching */

.woocommerce ul.products li.product .view-details,
.woocommerce ul.products li.product .jm-view-details,
.woocommerce ul.products li.product a.view-details,
.woocommerce ul.products li.product button.view-details,
.woocommerce ul.products li.product a[href*="quick-view"],
.woocommerce ul.products li.product .quick-view,
.woocommerce ul.products li.product .quick-view-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	flex: 0 0 auto !important;

	width: auto !important;
	min-width: 132px !important;
	max-width: 160px !important;
	height: auto !important;
	min-height: 46px !important;

	margin: 0 !important;
	padding: 11px 18px !important;

	background: #f1f5ed !important;
	color: #176b2b !important;

	border: 1px solid #bfd0b5 !important;
	border-radius: 11px !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;

	box-shadow: none !important;
}


/* Hover state */

.woocommerce ul.products li.product .view-details:hover,
.woocommerce ul.products li.product .view-details:focus,
.woocommerce ul.products li.product .jm-view-details:hover,
.woocommerce ul.products li.product .jm-view-details:focus,
.woocommerce ul.products li.product a[href*="quick-view"]:hover,
.woocommerce ul.products li.product a[href*="quick-view"]:focus,
.woocommerce ul.products li.product .quick-view:hover,
.woocommerce ul.products li.product .quick-view:focus,
.woocommerce ul.products li.product .quick-view-button:hover,
.woocommerce ul.products li.product .quick-view-button:focus {
	background: #e4ecdd !important;
	color: #104f20 !important;

	border-color: #9fbb91 !important;

	text-decoration: none !important;

	outline: none !important;
}


/* Description beside the button */

.woocommerce ul.products li.product .product-short-description,
.woocommerce ul.products li.product .jm-product-description,
.woocommerce ul.products li.product .product-description,
.woocommerce ul.products li.product .woocommerce-product-details__short-description {
	flex: 1 1 auto !important;

	min-width: 0 !important;
	margin: 0 !important;

	color: #687362 !important;

	font-size: 14px !important;
	line-height: 1.45 !important;
}


/* Add to basket button remains full width */

.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .button.product_type_simple,
.woocommerce ul.products li.product .button.product_type_variable {
	width: 100% !important;
}


/* Mobile */

@media screen and (max-width: 680px) {

	.woocommerce ul.products li.product .jm-product-actions,
	.woocommerce ul.products li.product .product-actions,
	.woocommerce ul.products li.product .product-detail-row,
	.woocommerce ul.products li.product .jm-product-detail-row {
		align-items: flex-start !important;
		gap: 10px !important;
	}


	.woocommerce ul.products li.product .view-details,
	.woocommerce ul.products li.product .jm-view-details,
	.woocommerce ul.products li.product a.view-details,
	.woocommerce ul.products li.product button.view-details,
	.woocommerce ul.products li.product a[href*="quick-view"],
	.woocommerce ul.products li.product .quick-view,
	.woocommerce ul.products li.product .quick-view-button {
		min-width: 115px !important;
		max-width: 135px !important;
		min-height: 42px !important;

		padding: 10px 13px !important;

		font-size: 14px !important;
	}

}


/* =========================================================
   JM QUICK VIEW — ACTION BUTTON AND LINK COLOUR CORRECTION
   Add this entire block at the bottom of the existing CSS
   ========================================================= */


/* ---------------------------------------------------------
   Product category and metadata links
   Remove WooCommerce's red link colour
   --------------------------------------------------------- */

body .jm-quick-view .jm-quick-view__meta a,
body .jm-quick-view .jm-quick-view__meta-row a,
body .jm-quick-view .posted_in a {
	color: #176b2b !important;

	font-weight: 600 !important;
	text-decoration: none !important;
	text-underline-offset: 3px !important;
}


body .jm-quick-view .jm-quick-view__meta a:hover,
body .jm-quick-view .jm-quick-view__meta a:focus,
body .jm-quick-view .jm-quick-view__meta-row a:hover,
body .jm-quick-view .jm-quick-view__meta-row a:focus,
body .jm-quick-view .posted_in a:hover,
body .jm-quick-view .posted_in a:focus {
	color: #104f20 !important;

	text-decoration: underline !important;

	outline: none !important;
}


/* ---------------------------------------------------------
   Main action area

   Row one:
   quantity selector + Add to basket

   Row two:
   Continue shopping
   --------------------------------------------------------- */

body .jm-quick-view .jm-quick-view__actions {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 14px !important;

	width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	box-sizing: border-box !important;
}


/* Quantity and Add to basket row */

body .jm-quick-view .jm-quick-view__purchase-row {
	display: grid !important;
	grid-template-columns: 246px minmax(0, 1fr) !important;
	align-items: stretch !important;
	gap: 14px !important;

	width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;

	box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   Quantity selector
   --------------------------------------------------------- */

body .jm-quick-view
.jm-quick-view__purchase-row
.jm-shop-quantity {
	display: grid !important;
	grid-template-columns: 78px 90px 78px !important;

	width: 246px !important;
	min-width: 246px !important;
	max-width: 246px !important;
	height: 62px !important;

	margin: 0 !important;

	border: 1px solid #bfd0b5 !important;
	border-radius: 14px !important;

	overflow: hidden !important;

	box-sizing: border-box !important;
}


body .jm-quick-view
.jm-quick-view__purchase-row
.jm-shop-quantity__button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	height: 60px !important;

	margin: 0 !important;
	padding: 0 !important;

	background: #f3f7f0 !important;
	color: #176b2b !important;

	border: 0 !important;
	border-radius: 0 !important;

	font-size: 25px !important;
	font-weight: 600 !important;
	line-height: 1 !important;

	box-shadow: none !important;
}


body .jm-quick-view
.jm-quick-view__purchase-row
.jm-shop-quantity__button:hover,
body .jm-quick-view
.jm-quick-view__purchase-row
.jm-shop-quantity__button:focus {
	background: #e7efe2 !important;
	color: #104f20 !important;

	outline: none !important;
}


body .jm-quick-view
.jm-quick-view__purchase-row
.jm-shop-quantity__input {
	display: block !important;

	width: 100% !important;
	height: 60px !important;

	margin: 0 !important;
	padding: 0 6px !important;

	background: #ffffff !important;
	color: #263326 !important;

	border: 0 !important;
	border-right: 1px solid #d5e0cf !important;
	border-left: 1px solid #d5e0cf !important;
	border-radius: 0 !important;

	font-family: inherit !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 60px !important;
	text-align: center !important;

	box-shadow: none !important;

	box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   Add to basket button
   --------------------------------------------------------- */

body .jm-quick-view
.jm-quick-view__purchase-row
.jm-quick-view__basket,
body .jm-quick-view
.jm-quick-view__purchase-row
a.jm-quick-view__basket {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 62px !important;
	min-height: 62px !important;

	margin: 0 !important;
	padding: 14px 22px !important;

	background: #91b968 !important;
	color: #ffffff !important;

	border: 2px solid #91b968 !important;
	border-radius: 14px !important;

	font-family: inherit !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	white-space: nowrap !important;

	box-shadow: none !important;

	box-sizing: border-box !important;

	overflow: visible !important;
}


body .jm-quick-view
.jm-quick-view__purchase-row
.jm-quick-view__basket:hover,
body .jm-quick-view
.jm-quick-view__purchase-row
.jm-quick-view__basket:focus {
	background: #7fa957 !important;
	color: #ffffff !important;

	border-color: #7fa957 !important;

	text-decoration: none !important;

	outline: none !important;
}


/* Stop WooCommerce's added-to-cart styling changing its size */

body .jm-quick-view
.jm-quick-view__purchase-row
.jm-quick-view__basket.added {
	padding-right: 22px !important;
}


body .jm-quick-view
.jm-quick-view__purchase-row
.jm-quick-view__basket::after {
	display: none !important;
	content: none !important;
}


/* ---------------------------------------------------------
   Continue shopping button
   Full separate row below Add to basket
   --------------------------------------------------------- */

body .jm-quick-view .jm-quick-view__continue {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 9px !important;

	position: static !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 58px !important;
	min-height: 58px !important;

	margin: 0 !important;
	padding: 13px 22px !important;

	background: #f1f5ed !important;
	color: #176b2b !important;

	border: 2px solid #bfd0b5 !important;
	border-radius: 14px !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	white-space: nowrap !important;

	box-shadow: none !important;

	box-sizing: border-box !important;

	transform: none !important;
}


body .jm-quick-view .jm-quick-view__continue::before {
	content: "←";

	display: inline-block !important;

	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1 !important;

	transition: transform 0.2s ease !important;
}


body .jm-quick-view .jm-quick-view__continue:hover,
body .jm-quick-view .jm-quick-view__continue:focus {
	background: #e5eedf !important;
	color: #104f20 !important;

	border-color: #9fbb91 !important;

	text-decoration: none !important;

	outline: none !important;

	transform: none !important;
}


body .jm-quick-view .jm-quick-view__continue:hover::before,
body .jm-quick-view .jm-quick-view__continue:focus::before {
	transform: translateX(-3px) !important;
}


/* ---------------------------------------------------------
   Prevent other button rules from overlapping quick view
   --------------------------------------------------------- */

body .jm-quick-view .jm-quick-view__actions > *,
body .jm-quick-view .jm-quick-view__purchase-row > * {
	position: relative !important;
	inset: auto !important;
	float: none !important;

	max-width: none !important;

	transform-origin: center !important;

	box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   Tablet
   --------------------------------------------------------- */

@media screen and (max-width: 950px) {

	body .jm-quick-view
	.jm-quick-view__purchase-row {
		grid-template-columns: 210px minmax(0, 1fr) !important;
		gap: 12px !important;
	}


	body .jm-quick-view
	.jm-quick-view__purchase-row
	.jm-shop-quantity {
		grid-template-columns: 64px 80px 64px !important;

		width: 210px !important;
		min-width: 210px !important;
		max-width: 210px !important;
	}

}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media screen and (max-width: 680px) {

	body .jm-quick-view
	.jm-quick-view__purchase-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 12px !important;
	}


	body .jm-quick-view
	.jm-quick-view__purchase-row
	.jm-shop-quantity {
		grid-template-columns: 1fr 1fr 1fr !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
	}


	body .jm-quick-view
	.jm-quick-view__purchase-row
	.jm-quick-view__basket,
	body .jm-quick-view
	.jm-quick-view__continue {
		width: 100% !important;
		min-width: 0 !important;

		white-space: normal !important;
	}

}


/* =========================================================
   JM SHOP — THEMED VIEW BASKET BUTTON
   Uses the same full-basket icon as the main basket button
   ========================================================= */


/* WooCommerce dynamically inserts this link after Add to basket */

.woocommerce ul.products li.product a.added_to_cart,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product a.added_to_cart {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;

	position: static !important;
	float: none !important;

	width: auto !important;
	min-width: 158px !important;
	max-width: 100% !important;
	min-height: 48px !important;

	margin: 14px auto 0 !important;
	padding: 11px 18px !important;

	background-color: #f1f5ed !important;
	background-image: url("https://www.jmfltd.com/wp-content/uploads/2026/07/Your-Basket-Full.webp") !important;
	background-repeat: no-repeat !important;
	background-position: 17px center !important;
	background-size: 27px 27px !important;

	color: #176b2b !important;

	border: 2px solid #91b968 !important;
	border-radius: 12px !important;

	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;

	box-shadow: none !important;

	box-sizing: border-box !important;

	/*
	 * Extra left padding creates space for the basket icon.
	 */
	padding-left: 55px !important;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease !important;
}


/* Hover and keyboard focus */

.woocommerce ul.products li.product a.added_to_cart:hover,
.woocommerce ul.products li.product a.added_to_cart:focus,
.woocommerce ul.products li.product .added_to_cart:hover,
.woocommerce ul.products li.product .added_to_cart:focus,
.woocommerce-page ul.products li.product a.added_to_cart:hover,
.woocommerce-page ul.products li.product a.added_to_cart:focus {
	background-color: #e5eedf !important;
	color: #104f20 !important;

	border-color: #7fa957 !important;

	text-decoration: none !important;

	box-shadow: 0 7px 18px rgba(44, 77, 35, 0.12) !important;

	transform: translateY(-1px) !important;

	outline: none !important;
}


/* Clear keyboard focus indication */

.woocommerce ul.products li.product a.added_to_cart:focus-visible,
.woocommerce ul.products li.product .added_to_cart:focus-visible {
	outline: 3px solid rgba(23, 107, 43, 0.22) !important;
	outline-offset: 3px !important;
}


/* Prevent general WooCommerce link rules from underlining it */

.woocommerce ul.products li.product a.added_to_cart::after,
.woocommerce ul.products li.product .added_to_cart::after {
	display: none !important;
	content: none !important;
}


/* Keep it centred beneath the action row */

.woocommerce ul.products li.product .jm-shop-actions + a.added_to_cart,
.woocommerce ul.products li.product .jm-shop-actions ~ a.added_to_cart {
	align-self: center !important;
}


/* =========================================================
   QUICK VIEW POP-UP VERSION
   ========================================================= */

.jm-quick-view a.added_to_cart,
.jm-quick-view .added_to_cart {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;

	width: 100% !important;
	min-height: 54px !important;

	margin: 12px 0 0 !important;
	padding: 12px 20px 12px 58px !important;

	background-color: #f1f5ed !important;
	background-image: url("https://www.jmfltd.com/wp-content/uploads/2026/07/Your-Basket-Full.webp") !important;
	background-repeat: no-repeat !important;
	background-position: 19px center !important;
	background-size: 29px 29px !important;

	color: #176b2b !important;

	border: 2px solid #91b968 !important;
	border-radius: 14px !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;

	box-sizing: border-box !important;

	box-shadow: none !important;
}


.jm-quick-view a.added_to_cart:hover,
.jm-quick-view a.added_to_cart:focus,
.jm-quick-view .added_to_cart:hover,
.jm-quick-view .added_to_cart:focus {
	background-color: #e5eedf !important;
	color: #104f20 !important;

	border-color: #7fa957 !important;

	text-decoration: none !important;

	outline: none !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	.woocommerce ul.products li.product a.added_to_cart,
	.woocommerce ul.products li.product .added_to_cart,
	.woocommerce-page ul.products li.product a.added_to_cart {
		width: 100% !important;
		min-width: 0 !important;
		min-height: 46px !important;

		margin-top: 11px !important;
		padding: 10px 16px 10px 51px !important;

		background-position: 15px center !important;
		background-size: 25px 25px !important;

		font-size: 15px !important;
	}


	.jm-quick-view a.added_to_cart,
	.jm-quick-view .added_to_cart {
		min-height: 50px !important;

		padding: 11px 16px 11px 52px !important;

		background-position: 16px center !important;
		background-size: 26px 26px !important;

		font-size: 16px !important;
	}

}


/* Reduced-motion preference */

@media (prefers-reduced-motion: reduce) {

	.woocommerce ul.products li.product a.added_to_cart,
	.woocommerce ul.products li.product .added_to_cart {
		transition: none !important;
	}


	.woocommerce ul.products li.product a.added_to_cart:hover,
	.woocommerce ul.products li.product a.added_to_cart:focus,
	.woocommerce ul.products li.product .added_to_cart:hover,
	.woocommerce ul.products li.product .added_to_cart:focus {
		transform: none !important;
	}

}


/* =========================================================
   JM QUICK VIEW — SPACE BETWEEN META AND PURCHASE CONTROLS
   ========================================================= */

/* Add breathing room beneath the SKU/category panel */

body .jm-quick-view .jm-quick-view__meta {
	margin-bottom: 22px !important;
}


/* Ensure the actions area starts as a separate section */

body .jm-quick-view .jm-quick-view__actions {
	margin-top: 0 !important;
}


/* Keep the quantity and Add to basket row clear of the panel */

body .jm-quick-view .jm-quick-view__purchase-row {
	margin-top: 0 !important;
}


/* Slightly tighter spacing on mobile */

@media screen and (max-width: 680px) {

	body .jm-quick-view .jm-quick-view__meta {
		margin-bottom: 16px !important;
	}

}


/* ==========================================================
   JM FLOATING CONTACT LEAF
   THEMIFY ULTRA — COMPLETE REPLACEMENT CSS
   ========================================================== */

:root {
	--jm-contact-leaf-width: clamp(135px, 11vw, 175px);
	--jm-contact-bottom-position: 16px;

	--jm-contact-green: #bcd49a;
	--jm-contact-green-light: #dce9ca;
	--jm-contact-green-dark: #758f55;
	--jm-contact-green-deep: #425b31;

	--jm-contact-cream: #f7f5ee;
	--jm-contact-cream-dark: #ede9dc;
	--jm-contact-white: #ffffff;

	--jm-contact-text: #26331d;
	--jm-contact-muted: #6d7565;
}


/* ==========================================================
   MAIN FIXED WIDGET
   ========================================================== */

.jm-contact-widget {
	position: fixed;
	right: 0;
	bottom: var(--jm-contact-bottom-position);
	z-index: 99997;

	display: flex;
	align-items: flex-end;

	width: auto;
	max-width: 100vw;

	font-family: inherit;

	pointer-events: none;
}

.jm-contact-widget,
.jm-contact-widget *,
.jm-contact-widget *::before,
.jm-contact-widget *::after {
	box-sizing: border-box;
}


/* ==========================================================
   LEAF BUTTON — GENTLE WIND SWING
   ========================================================== */

.jm-contact-leaf {
	position: relative;
	z-index: 4;

	display: block;

	width: var(--jm-contact-leaf-width);
	max-width: 175px;
	min-width: 0;
	flex: 0 0 var(--jm-contact-leaf-width);

	margin: 0;
	padding: 0;

	overflow: visible;

	border: 0 !important;
	border-radius: 0 !important;

	background: transparent !important;
	background-color: transparent !important;

	box-shadow: none !important;
	outline: none;

	line-height: 0;

	cursor: pointer;
	pointer-events: auto;

	/*
	 * The right-hand edge remains attached to the page.
	 * The wider left side swings like a leaf in the wind.
	 */
	transform: rotate(0deg);
	transform-origin: 100% 50%;

	will-change: transform, filter;

	-webkit-appearance: none;
	appearance: none;

	-webkit-tap-highlight-color: transparent;
}

.jm-contact-leaf:hover,
.jm-contact-leaf:focus,
.jm-contact-leaf:active {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.jm-contact-leaf:hover {
	animation:
		jm-contact-leaf-wind
		1.45s
		cubic-bezier(0.42, 0, 0.28, 1)
		infinite;

	filter:
		brightness(1.035)
		drop-shadow(
			0 7px 9px
			rgba(45, 72, 28, 0.18)
		);
}

.jm-contact-leaf:active {
	animation: none;

	transform:
		rotate(-2deg)
		scale(0.985);

	filter:
		brightness(0.99)
		drop-shadow(
			0 4px 6px
			rgba(45, 72, 28, 0.14)
		);
}

.jm-contact-leaf:focus-visible {
	outline:
		3px solid
		rgba(66, 91, 49, 0.68) !important;

	outline-offset: -4px;

	animation:
		jm-contact-leaf-focus-sway
		2.3s
		ease-in-out
		infinite;
}

@keyframes jm-contact-leaf-wind {

	0% {
		transform: rotate(0deg);
	}

	16% {
		transform: rotate(-6deg);
	}

	32% {
		transform: rotate(3.5deg);
	}

	48% {
		transform: rotate(-3deg);
	}

	64% {
		transform: rotate(2deg);
	}

	80% {
		transform: rotate(-1deg);
	}

	100% {
		transform: rotate(0deg);
	}

}

@keyframes jm-contact-leaf-focus-sway {

	0%,
	100% {
		transform: rotate(0deg);
	}

	50% {
		transform: rotate(-2deg);
	}

}

.jm-contact-leaf img {
	display: block;

	width: 100%;
	max-width: 100%;
	height: auto;

	margin: 0;
	padding: 0;

	border: 0;
	border-radius: 0;

	background: transparent;
	box-shadow: none;

	object-fit: contain;

	pointer-events: none;
	user-select: none;

	-webkit-user-drag: none;
}


/*
 * Keep the leaf still while the contact panel is open.
 */
.jm-contact-widget--open .jm-contact-leaf,
.jm-contact-widget--open .jm-contact-leaf:hover,
.jm-contact-widget--open .jm-contact-leaf:focus {
	animation: none;

	transform: rotate(0deg);

	filter:
		drop-shadow(
			0 5px 8px
			rgba(45, 72, 28, 0.13)
		);
}


/* ==========================================================
   CONTACT PANEL
   ========================================================== */

.jm-contact-panel {
	position: absolute;
	right: calc(var(--jm-contact-leaf-width) - 17px);
	bottom: 6px;
	z-index: 3;

	width: min(
		325px,
		calc(100vw - var(--jm-contact-leaf-width) - 22px)
	);

	max-width: 325px;
	max-height: calc(100vh - 34px);

	padding: 21px 20px 19px;

	overflow-x: hidden;
	overflow-y: auto;

	border:
		1px solid
		rgba(117, 143, 85, 0.33);

	border-radius:
		27px
		18px
		25px
		16px;

	background:
		radial-gradient(
			circle at 88% 12%,
			rgba(188, 212, 154, 0.23) 0,
			rgba(188, 212, 154, 0.08) 19%,
			transparent 42%
		),
		radial-gradient(
			circle at 5% 92%,
			rgba(188, 212, 154, 0.13) 0,
			transparent 36%
		),
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.985) 0%,
			rgba(247, 245, 238, 0.985) 64%,
			rgba(241, 238, 227, 0.985) 100%
		);

	box-shadow:
		0 16px 34px rgba(38, 51, 29, 0.17),
		0 4px 10px rgba(38, 51, 29, 0.07),
		inset 0 1px 0 rgba(255, 255, 255, 0.88);

	opacity: 0;
	visibility: hidden;

	pointer-events: none;

	transform:
		translateX(44px)
		translateY(7px)
		scale(0.975);

	transform-origin: right bottom;

	transition:
		opacity 220ms ease,
		transform 290ms cubic-bezier(0.2, 0.8, 0.2, 1),
		visibility 220ms ease;
}


/* Decorative small leaf */

.jm-contact-panel::before {
	content: "";

	position: absolute;
	top: -13px;
	left: 31px;

	width: 35px;
	height: 22px;

	border:
		1px solid
		rgba(117, 143, 85, 0.3);

	border-radius:
		90% 8% 90% 8%;

	background:
		linear-gradient(
			135deg,
			#d9e8c5 0%,
			#bcd49a 100%
		);

	box-shadow:
		0 4px 8px rgba(66, 91, 49, 0.1);

	transform: rotate(-21deg);
}


/* Decorative leaf vein */

.jm-contact-panel::after {
	content: "";

	position: absolute;
	top: 3px;
	left: 42px;

	width: 22px;
	height: 1px;

	background:
		rgba(66, 91, 49, 0.3);

	transform: rotate(-28deg);
	transform-origin: left centre;
}

.jm-contact-widget--open .jm-contact-panel {
	opacity: 1;
	visibility: visible;

	pointer-events: auto;

	transform:
		translateX(0)
		translateY(0)
		scale(1);
}


/* ==========================================================
   PANEL HEADER
   ========================================================== */

.jm-contact-panel__header {
	position: relative;
	z-index: 2;

	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap: 14px;

	margin: 0 0 15px;
	padding: 0 0 13px;

	border-bottom:
		1px solid
		rgba(117, 143, 85, 0.17);
}

.jm-contact-panel__heading {
	min-width: 0;
}

.jm-contact-panel__eyebrow {
	display: block;

	margin: 0 0 4px;
	padding: 0;

	color: var(--jm-contact-green-dark);

	font-family: inherit;
	font-size: 9px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.09em;

	text-transform: uppercase;
}

.jm-contact-panel__title {
	margin: 0 !important;
	padding: 0 !important;

	color: var(--jm-contact-text) !important;

	font-family: inherit !important;
	font-size: 25px !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.015em !important;
	text-transform: none !important;
}


/* ==========================================================
   CLOSE BUTTON
   ========================================================== */

.jm-contact-panel__close {
	display: grid;
	place-items: center;

	width: 33px;
	height: 33px;
	min-width: 33px;
	flex: 0 0 33px;

	margin: -3px -2px 0 0;
	padding: 0;

	border:
		1px solid
		rgba(117, 143, 85, 0.28) !important;

	border-radius:
		55% 45% 52% 48% !important;

	background:
		rgba(220, 233, 202, 0.55) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.76) !important;

	color: var(--jm-contact-green-deep);

	cursor: pointer;

	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;

	-webkit-appearance: none;
	appearance: none;
}

.jm-contact-panel__close:hover {
	border-color:
		rgba(117, 143, 85, 0.48) !important;

	background:
		rgba(188, 212, 154, 0.48) !important;

	transform: rotate(7deg);
}

.jm-contact-panel__close:focus-visible {
	outline:
		3px solid
		rgba(117, 143, 85, 0.38) !important;

	outline-offset: 2px;
}

.jm-contact-panel__close svg {
	display: block;

	width: 16px;
	height: 16px;

	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}


/* ==========================================================
   CONTACT LINKS
   ========================================================== */

.jm-contact-panel__links {
	position: relative;
	z-index: 2;

	display: grid;
	grid-template-columns: 1fr;

	gap: 7px;

	margin: 0;
	padding: 0;
}

.jm-contact-link {
	display: flex;
	align-items: center;

	min-width: 0;

	gap: 11px;

	margin: 0;
	padding: 9px 10px;

	border:
		1px solid
		rgba(117, 143, 85, 0.16);

	border-radius:
		16px
		12px
		15px
		11px;

	background:
		rgba(255, 255, 255, 0.64);

	color:
		var(--jm-contact-text) !important;

	text-decoration: none !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.74);

	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease,
		transform 180ms ease;
}

.jm-contact-link:hover {
	border-color:
		rgba(117, 143, 85, 0.36);

	background:
		rgba(255, 255, 255, 0.96);

	color:
		var(--jm-contact-text) !important;

	text-decoration: none !important;

	box-shadow:
		0 5px 13px rgba(66, 91, 49, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.95);

	transform: translateX(-3px);
}

.jm-contact-link:focus-visible {
	outline:
		3px solid
		rgba(117, 143, 85, 0.35);

	outline-offset: 2px;
}


/* ==========================================================
   CONTACT ICONS
   ========================================================== */

.jm-contact-link__icon {
	display: grid;
	place-items: center;

	width: 40px;
	height: 40px;
	min-width: 40px;
	flex: 0 0 40px;

	border:
		1px solid
		rgba(255, 255, 255, 0.86);

	border-radius:
		54% 46% 55% 45%;

	background:
		linear-gradient(
			145deg,
			#c7dca8 0%,
			#b5cf91 100%
		);

	box-shadow:
		0 0 0 2px rgba(188, 212, 154, 0.34),
		0 4px 9px rgba(66, 91, 49, 0.1),
		inset 0 1px 0 rgba(255, 255, 255, 0.52);

	color: var(--jm-contact-white);
}

.jm-contact-link__icon svg {
	display: block;

	width: 21px;
	height: 21px;

	overflow: visible;

	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.jm-contact-link__icon .jm-contact-link__filled-icon {
	fill: currentColor;
	stroke: none;
}


/* ==========================================================
   CONTACT TEXT
   ========================================================== */

.jm-contact-link__content {
	display: block;

	min-width: 0;

	line-height: 1.22;
}

.jm-contact-link__content strong,
.jm-contact-link__content small {
	display: block;

	margin: 0;
	padding: 0;

	font-family: inherit;
}

.jm-contact-link__content strong {
	margin-bottom: 2px;

	color: var(--jm-contact-text);

	font-size: 14px;
	font-weight: 700;
	line-height: 1.22;
}

.jm-contact-link__content small {
	overflow-wrap: anywhere;

	color: var(--jm-contact-muted);

	font-size: 11px;
	font-weight: 500;
	line-height: 1.32;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (max-width: 1024px) {

	:root {
		--jm-contact-leaf-width: clamp(130px, 16vw, 155px);
		--jm-contact-bottom-position: 12px;
	}

	.jm-contact-leaf {
		max-width: 155px;
	}

	.jm-contact-panel {
		right:
			calc(
				var(--jm-contact-leaf-width) - 15px
			);

		width:
			min(
				310px,
				calc(
					100vw -
					var(--jm-contact-leaf-width) -
					18px
				)
			);
	}

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media screen and (max-width: 700px) {

	:root {
		--jm-contact-leaf-width: clamp(118px, 35vw, 140px);
		--jm-contact-bottom-position: 8px;
	}

	.jm-contact-leaf {
		max-width: 140px;
	}

	.jm-contact-panel {
		right: 10px;
		bottom:
			calc(
				var(--jm-contact-leaf-width) * 0.64
			);

		width:
			min(
				310px,
				calc(100vw - 20px)
			);

		max-width: none;
		max-height:
			calc(100vh - 135px);

		padding:
			18px
			17px
			16px;

		border-radius:
			23px
			16px
			21px
			15px;

		transform:
			translateY(25px)
			scale(0.975);

		transform-origin: right bottom;
	}

	.jm-contact-widget--open .jm-contact-panel {
		transform:
			translateY(0)
			scale(1);
	}

	.jm-contact-panel::before {
		top: -10px;
		left: 27px;

		width: 29px;
		height: 18px;
	}

	.jm-contact-panel::after {
		top: 3px;
		left: 36px;

		width: 18px;
	}

	.jm-contact-panel__header {
		margin-bottom: 12px;
		padding-bottom: 11px;
	}

	.jm-contact-panel__title {
		font-size: 23px !important;
	}

	.jm-contact-link {
		gap: 10px;

		padding: 8px 9px;
	}

	.jm-contact-link__icon {
		width: 38px;
		height: 38px;
		min-width: 38px;
		flex-basis: 38px;
	}

	.jm-contact-link__icon svg {
		width: 20px;
		height: 20px;
	}

}


/* ==========================================================
   NARROW MOBILE
   ========================================================== */

@media screen and (max-width: 390px) {

	:root {
		--jm-contact-leaf-width: 120px;
	}

	.jm-contact-leaf {
		max-width: 120px;
	}

	.jm-contact-panel {
		right: 7px;

		width:
			calc(100vw - 14px);

		padding:
			16px
			14px
			14px;
	}

	.jm-contact-panel__eyebrow {
		max-width: 210px;

		font-size: 8px;
	}

	.jm-contact-panel__title {
		font-size: 21px !important;
	}

	.jm-contact-link__content strong {
		font-size: 13px;
	}

	.jm-contact-link__content small {
		font-size: 10px;
	}

}


/* ==========================================================
   THEMIFY ULTRA OVERRIDES
   ========================================================== */

#pagewrap .jm-contact-leaf,
#pagewrap .jm-contact-panel__close {
	text-shadow: none !important;
}

#pagewrap .jm-contact-link,
#pagewrap .jm-contact-link:hover,
#pagewrap .jm-contact-link:focus {
	color: var(--jm-contact-text) !important;
	text-decoration: none !important;
}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

	.jm-contact-leaf,
	.jm-contact-leaf:hover,
	.jm-contact-leaf:focus,
	.jm-contact-leaf:active,
	.jm-contact-panel,
	.jm-contact-panel__close,
	.jm-contact-link {
		animation: none !important;
		transition: none !important;
		transform: none !important;
	}

}


/* =========================================================
   JM SHOP — FINAL MOBILE PRODUCT CARD CORRECTION
   Keep this as the final block in the entire CSS file
   ========================================================= */

@media screen and (max-width: 680px) {

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

	body.post-type-archive-product ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-rows: auto !important;
		align-items: start !important;
		gap: 22px !important;

		width: 100% !important;

		margin: 0 !important;
		padding: 0 !important;
	}


	/* -----------------------------------------------------
	   Individual product card

	   Remove all desktop equal-height and flex stretching.
	   ----------------------------------------------------- */

	body.post-type-archive-product ul.products > li.product,
	body.tax-product_cat ul.products > li.product,
	body.tax-product_tag ul.products > li.product {
		position: relative !important;

		display: block !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;

		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		margin: 0 !important;
		padding: 24px !important;

		background: #ffffff !important;

		border: 1px solid #dce5d7 !important;
		border-radius: 17px !important;

		box-shadow:
			0 8px 24px
			rgba(38, 50, 38, 0.05) !important;

		overflow: hidden !important;

		transform: none !important;
	}


	/* -----------------------------------------------------
	   Main product link

	   This is the important correction. It must not stretch
	   to fill the product card on mobile.
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-LoopProduct-link,

	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-LoopProduct-link,

	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-LoopProduct-link {
		display: block !important;

		width: 100% !important;
		min-width: 0 !important;

		height: auto !important;
		min-height: 0 !important;

		flex: none !important;

		margin: 0 !important;
		padding: 0 !important;

		color: inherit !important;

		text-decoration: none !important;
	}


	/* -----------------------------------------------------
	   Product image wrapper
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	.product-image,

	body.tax-product_cat
	ul.products
	li.product
	.product-image,

	body.tax-product_tag
	ul.products
	li.product
	.product-image {
		position: relative !important;

		display: block !important;

		width: 100% !important;
		height: auto !important;

		margin: 0 0 14px !important;
		padding: 0 !important;

		overflow: hidden !important;

		border-radius: 12px !important;
	}


	/* -----------------------------------------------------
	   Product image
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	img,

	body.tax-product_cat
	ul.products
	li.product
	img,

	body.tax-product_tag
	ul.products
	li.product
	img,

	body.post-type-archive-product
	ul.products
	li.product
	.product-image
	img,

	body.tax-product_cat
	ul.products
	li.product
	.product-image
	img,

	body.tax-product_tag
	ul.products
	li.product
	.product-image
	img {
		display: block !important;

		width: min(245px, 100%) !important;
		height: auto !important;
		aspect-ratio: 1 / 1 !important;

		margin: 0 !important;

		object-fit: cover !important;
		object-position: center !important;

		background: #f5f3ec !important;

		border: 0 !important;
		border-radius: 12px !important;

		box-shadow: none !important;
	}


	/* -----------------------------------------------------
	   Product title
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	h2,

	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_cat
	ul.products
	li.product
	h2,

	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_tag
	ul.products
	li.product
	h2,

	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-loop-product__title {
		display: block !important;

		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;

		margin: 0 0 24px !important;
		padding: 0 !important;

		color: #263226 !important;

		font-family: inherit !important;
		font-size: 21px !important;
		font-weight: 700 !important;
		line-height: 1.28 !important;

		overflow-wrap: anywhere !important;
	}


	/* -----------------------------------------------------
	   Price

	   Remove the artificial 38px / 45px top margin.
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	.price,

	body.tax-product_cat
	ul.products
	li.product
	.price,

	body.tax-product_tag
	ul.products
	li.product
	.price {
		position: static !important;

		display: block !important;

		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;

		margin: 0 0 18px !important;
		padding: 0 !important;

		color: #176b2b !important;

		font-family: inherit !important;
		font-size: 21px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;

		align-self: auto !important;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.price
	.amount,

	body.post-type-archive-product
	ul.products
	li.product
	.price
	.woocommerce-Price-amount,

	body.post-type-archive-product
	ul.products
	li.product
	.price
	.woocommerce-Price-currencySymbol,

	body.tax-product_cat
	ul.products
	li.product
	.price
	.amount,

	body.tax-product_cat
	ul.products
	li.product
	.price
	.woocommerce-Price-amount,

	body.tax-product_cat
	ul.products
	li.product
	.price
	.woocommerce-Price-currencySymbol,

	body.tax-product_tag
	ul.products
	li.product
	.price
	.amount,

	body.tax-product_tag
	ul.products
	li.product
	.price
	.woocommerce-Price-amount,

	body.tax-product_tag
	ul.products
	li.product
	.price
	.woocommerce-Price-currencySymbol {
		color: #176b2b !important;
		font-weight: 700 !important;
	}


	/* -----------------------------------------------------
	   Hide archive descriptions on mobile
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	.product-description,

	body.post-type-archive-product
	ul.products
	li.product
	.entry-content,

	body.post-type-archive-product
	ul.products
	li.product
	.product-excerpt,

	body.tax-product_cat
	ul.products
	li.product
	.product-description,

	body.tax-product_cat
	ul.products
	li.product
	.entry-content,

	body.tax-product_cat
	ul.products
	li.product
	.product-excerpt,

	body.tax-product_tag
	ul.products
	li.product
	.product-description,

	body.tax-product_tag
	ul.products
	li.product
	.entry-content,

	body.tax-product_tag
	ul.products
	li.product
	.product-excerpt {
		display: none !important;
	}


	/* -----------------------------------------------------
	   Complete action area

	   Order:
	   View details
	   Quantity
	   Add to basket
	   ----------------------------------------------------- */

	body.post-type-archive-product
	.jm-shop-actions,

	body.tax-product_cat
	.jm-shop-actions,

	body.tax-product_tag
	.jm-shop-actions {
		position: static !important;

		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;

		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;

		gap: 15px !important;

		margin: 0 !important;
		padding: 0 !important;

		grid-area: auto !important;

		align-self: auto !important;
	}


	/* -----------------------------------------------------
	   View details
	   ----------------------------------------------------- */

	body.post-type-archive-product
	button.jm-shop-view-details,

	body.tax-product_cat
	button.jm-shop-view-details,

	body.tax-product_tag
	button.jm-shop-view-details {
		position: static !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;

		height: auto !important;
		min-height: 48px !important;

		margin: 0 !important;
		padding: 11px 16px !important;

		background: #eef3e9 !important;
		background-image: none !important;
		color: #176b2b !important;

		border: 1px solid #bfd0b5 !important;
		border-radius: 11px !important;

		font-family: inherit !important;
		font-size: 15px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		text-align: center !important;
		text-transform: none !important;

		box-shadow: none !important;

		transform: none !important;
	}


	body.post-type-archive-product
	button.jm-shop-view-details:hover,

	body.post-type-archive-product
	button.jm-shop-view-details:focus,

	body.tax-product_cat
	button.jm-shop-view-details:hover,

	body.tax-product_cat
	button.jm-shop-view-details:focus,

	body.tax-product_tag
	button.jm-shop-view-details:hover,

	body.tax-product_tag
	button.jm-shop-view-details:focus {
		background: #dfead7 !important;
		color: #104f20 !important;

		border-color: #a9c09b !important;

		outline: none !important;
	}


	/* -----------------------------------------------------
	   Quantity selector wrapper
	   ----------------------------------------------------- */

	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity {
		display: grid !important;
		grid-template-columns: 68px 76px 68px !important;
		align-items: center !important;

		align-self: center !important;

		width: 212px !important;
		min-width: 212px !important;
		max-width: 212px !important;

		height: 48px !important;
		min-height: 48px !important;

		margin: 0 auto !important;
		padding: 0 !important;

		background: #ffffff !important;

		border: 1px solid #bfd0b5 !important;
		border-radius: 12px !important;

		overflow: hidden !important;

		box-shadow: none !important;
	}


	/* Quantity minus and plus buttons */

	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity__button,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity__button,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity__button {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 100% !important;
		height: 46px !important;
		min-height: 46px !important;

		margin: 0 !important;
		padding: 0 !important;

		background: #f3f7f0 !important;
		color: #176b2b !important;

		border: 0 !important;
		border-radius: 0 !important;

		font-family: Arial, sans-serif !important;
		font-size: 23px !important;
		font-weight: 600 !important;
		line-height: 1 !important;

		box-shadow: none !important;

		transform: none !important;
	}


	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity__button:hover,

	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity__button:focus,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity__button:hover,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity__button:focus,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity__button:hover,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity__button:focus {
		background: #e4edde !important;
		color: #104f20 !important;

		outline: none !important;
	}


	/* Quantity number */

	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity__input,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity__input,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity__input {
		display: block !important;

		width: 100% !important;
		height: 46px !important;
		min-height: 46px !important;

		margin: 0 !important;
		padding: 0 5px !important;

		background: #ffffff !important;
		color: #263226 !important;

		border: 0 !important;
		border-right: 1px solid #d5e0cf !important;
		border-left: 1px solid #d5e0cf !important;
		border-radius: 0 !important;

		font-family: inherit !important;
		font-size: 17px !important;
		font-weight: 700 !important;
		line-height: 46px !important;
		text-align: center !important;

		box-shadow: none !important;

		appearance: textfield !important;
		-moz-appearance: textfield !important;
	}


	/* -----------------------------------------------------
	   Add to basket
	   ----------------------------------------------------- */

	body.post-type-archive-product
	.jm-shop-actions
	a.button,

	body.tax-product_cat
	.jm-shop-actions
	a.button,

	body.tax-product_tag
	.jm-shop-actions
	a.button,

	body.post-type-archive-product
	.jm-shop-actions
	.add_to_cart_button,

	body.tax-product_cat
	.jm-shop-actions
	.add_to_cart_button,

	body.tax-product_tag
	.jm-shop-actions
	.add_to_cart_button {
		position: static !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		align-self: stretch !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;

		height: auto !important;
		min-height: 50px !important;

		margin: 0 !important;
		padding: 12px 17px !important;

		background: #8fb468 !important;
		color: #ffffff !important;

		border: 1px solid #8fb468 !important;
		border-radius: 11px !important;

		font-family: inherit !important;
		font-size: 15px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		text-align: center !important;
		text-transform: none !important;
		text-decoration: none !important;

		box-shadow: none !important;

		transform: none !important;
	}


	body.post-type-archive-product
	.jm-shop-actions
	a.button:hover,

	body.post-type-archive-product
	.jm-shop-actions
	a.button:focus,

	body.tax-product_cat
	.jm-shop-actions
	a.button:hover,

	body.tax-product_cat
	.jm-shop-actions
	a.button:focus,

	body.tax-product_tag
	.jm-shop-actions
	a.button:hover,

	body.tax-product_tag
	.jm-shop-actions
	a.button:focus {
		background: #7ea456 !important;
		color: #ffffff !important;

		border-color: #7ea456 !important;

		text-decoration: none !important;

		outline: none !important;
	}


	/* -----------------------------------------------------
	   Added-to-basket confirmation
	   ----------------------------------------------------- */

	body.post-type-archive-product
	ul.products
	li.product
	.added_to_cart,

	body.tax-product_cat
	ul.products
	li.product
	.added_to_cart,

	body.tax-product_tag
	ul.products
	li.product
	.added_to_cart {
		display: block !important;

		width: fit-content !important;

		margin: 12px auto 0 !important;
		padding: 0 !important;

		color: #176b2b !important;

		font-size: 13px !important;
		font-weight: 700 !important;

		text-decoration: underline !important;
		text-underline-offset: 3px !important;
	}

}


/* =========================================================
   JM SHOP — VERY NARROW PHONES
   ========================================================= */

@media screen and (max-width: 390px) {

	body.post-type-archive-product
	ul.products
	> li.product,

	body.tax-product_cat
	ul.products
	> li.product,

	body.tax-product_tag
	ul.products
	> li.product {
		padding: 18px !important;

		border-radius: 15px !important;
	}


	body.post-type-archive-product
	ul.products
	li.product
	h2,

	body.post-type-archive-product
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_cat
	ul.products
	li.product
	h2,

	body.tax-product_cat
	ul.products
	li.product
	.woocommerce-loop-product__title,

	body.tax-product_tag
	ul.products
	li.product
	h2,

	body.tax-product_tag
	ul.products
	li.product
	.woocommerce-loop-product__title {
		margin-bottom: 20px !important;

		font-size: 19px !important;
	}


	body.post-type-archive-product
	ul.products
	li.product
	.price,

	body.tax-product_cat
	ul.products
	li.product
	.price,

	body.tax-product_tag
	ul.products
	li.product
	.price {
		margin-bottom: 16px !important;

		font-size: 20px !important;
	}


	body.post-type-archive-product
	.jm-shop-actions
	.jm-shop-quantity,

	body.tax-product_cat
	.jm-shop-actions
	.jm-shop-quantity,

	body.tax-product_tag
	.jm-shop-actions
	.jm-shop-quantity {
		grid-template-columns: 58px 68px 58px !important;

		width: 184px !important;
		min-width: 184px !important;
		max-width: 184px !important;
	}

}


/* =========================================================
   JM CUSTOM WOOCOMMERCE PRODUCT CARDS
   COMPLETE REPLACEMENT CSS
   Used by the [jm_product_cards] shortcode
   ========================================================= */

.jm-product-section {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.jm-product-section *,
.jm-product-section *::before,
.jm-product-section *::after {
	box-sizing: border-box;
}

/* =========================================================
   PRODUCT GRID
   ========================================================= */

.jm-product-grid {
	--jm-product-columns: 2;

	display: grid;
	grid-template-columns: repeat(var(--jm-product-columns), minmax(0, 1fr));
	gap: 30px;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	align-items: stretch;
}

/* =========================================================
   PRODUCT CARD
   ========================================================= */

.jm-product-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(220px, 38%) minmax(0, 62%);
	width: 100%;
	min-width: 0;
	height: 100%;
	min-height: 420px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid rgba(64, 91, 48, 0.15);
	border-radius: 20px;
	box-shadow:
		0 12px 30px rgba(43, 58, 34, 0.08),
		0 3px 8px rgba(43, 58, 34, 0.04);
	transition:
		transform 220ms ease,
		box-shadow 220ms ease,
		border-color 220ms ease;
}

.jm-product-card:hover {
	transform: translateY(-3px);
	border-color: rgba(62, 123, 47, 0.28);
	box-shadow:
		0 18px 40px rgba(43, 58, 34, 0.12),
		0 4px 10px rgba(43, 58, 34, 0.05);
}

/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

.jm-product-card__image-link {
	display: block;
	width: 100%;
	height: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #eef3e9;
	text-decoration: none;
}

.jm-product-card__image {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 420px;
	overflow: hidden;
	background: #eef3e9;
}

.jm-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 420px;
	margin: 0;
	padding: 0;
	object-fit: cover;
	object-position: center;
	border: 0;
	border-radius: 0;
	transition: transform 420ms ease;
}

.jm-product-card:hover .jm-product-card__image img {
	transform: scale(1.035);
}

.jm-product-card__badge {
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 6px 12px;
	color: #ffffff;
	background: #2f792c;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	box-shadow: 0 4px 12px rgba(24, 62, 22, 0.24);
}

/* =========================================================
   PRODUCT CONTENT
   ========================================================= */

.jm-product-card__content {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	padding: 28px;
}

.jm-product-card__main {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}

.jm-product-card__title {
	margin: 0 0 10px;
	padding: 0;
	color: #202a1d;
	font-size: clamp(20px, 1.35vw, 25px);
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: -0.025em;
	overflow-wrap: anywhere;
}

.jm-product-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 180ms ease;
}

.jm-product-card__title a:hover,
.jm-product-card__title a:focus {
	color: #2d7c2c;
}

.jm-product-card__price {
	margin: 0 0 16px;
	padding: 0;
	color: #2f812f;
	font-size: 23px;
	font-weight: 750;
	line-height: 1.2;
}

.jm-product-card__price del {
	margin-right: 7px;
	color: #858b82;
	font-size: 0.8em;
	font-weight: 500;
	opacity: 0.82;
}

.jm-product-card__price ins {
	color: #2f812f;
	text-decoration: none;
}

.jm-product-card__description {
	margin: 0 0 18px;
	padding: 0;
	color: #686d66;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.62;
}

.jm-product-card__description p {
	margin: 0;
	padding: 0;
}

.jm-product-card__availability {
	margin: auto 0 19px;
	padding-top: 6px;
}

.jm-stock-status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #5b6358;
	font-size: 13px;
	font-weight: 650;
	line-height: 1.3;
}

.jm-stock-status__dot {
	display: block;
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.jm-stock-status--in .jm-stock-status__dot {
	background: #55aa4d;
	box-shadow: 0 0 0 5px rgba(85, 170, 77, 0.12);
}

.jm-stock-status--out .jm-stock-status__dot {
	background: #a0584c;
	box-shadow: 0 0 0 5px rgba(160, 88, 76, 0.12);
}

/* =========================================================
   ACTION AREA
   The actions now use two clear rows:
   Row 1: quantity + Add to basket
   Row 2: More details
   ========================================================= */

.jm-product-card__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.jm-product-card__cart {
	display: grid !important;
	grid-template-columns: 116px minmax(0, 1fr);
	gap: 10px;
	align-items: end;
	width: 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}

/* =========================================================
   QUANTITY
   ========================================================= */

.jm-product-card__quantity {
	display: flex;
	flex-direction: column;
	gap: 7px;
	width: 116px;
	min-width: 116px;
	margin: 0;
	padding: 0;
}

.jm-product-card__quantity-label {
	display: block;
	margin: 0;
	padding: 0;
	color: #60675d;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.015em;
}

.jm-quantity-control {
	display: grid;
	grid-template-columns: 38px 40px 38px;
	width: 116px;
	height: 44px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid #cfdbc9;
	border-radius: 11px;
}

.jm-quantity-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 38px !important;
	min-width: 38px !important;
	height: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #33762f !important;
	background: #f1f7ed !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-indent: 0 !important;
	cursor: pointer;
	transition:
		color 160ms ease,
		background-color 160ms ease;
}

.jm-quantity-button:hover,
.jm-quantity-button:focus {
	color: #ffffff !important;
	background: #43883b !important;
}

.jm-quantity-control .quantity {
	display: block !important;
	width: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	height: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	border: 0 !important;
}

.jm-quantity-control input.qty,
.jm-quantity-control .qty,
.jm-quantity-control input[type="number"] {
	display: block !important;
	width: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	height: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 0 2px !important;
	color: #263122 !important;
	background: #ffffff !important;
	border: 0 !important;
	border-right: 1px solid #e0e8dc !important;
	border-left: 1px solid #e0e8dc !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 750 !important;
	line-height: 42px !important;
	text-align: center !important;
	text-indent: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	-webkit-text-fill-color: #263122 !important;
	-moz-appearance: textfield;
	appearance: textfield;
}

.jm-quantity-control input.qty::-webkit-outer-spin-button,
.jm-quantity-control input.qty::-webkit-inner-spin-button,
.jm-quantity-control input[type="number"]::-webkit-outer-spin-button,
.jm-quantity-control input[type="number"]::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* =========================================================
   ADD TO BASKET BUTTON
   ========================================================= */

.jm-product-card__add,
.jm-product-card a.jm-product-card__add,
.jm-product-card button.jm-product-card__add {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 9px !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	min-height: 44px !important;
	height: 44px !important;
	margin: 0 !important;
	padding: 9px 14px !important;
	overflow: hidden !important;
	color: #ffffff !important;
	background: #33832f !important;
	border: 1px solid #33832f !important;
	border-radius: 11px !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	text-indent: 0 !important;
	white-space: nowrap !important;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}

.jm-product-card__add span {
	display: inline-block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.jm-product-card__add:hover,
.jm-product-card__add:focus,
.jm-product-card a.jm-product-card__add:hover,
.jm-product-card a.jm-product-card__add:focus,
.jm-product-card button.jm-product-card__add:hover,
.jm-product-card button.jm-product-card__add:focus {
	color: #ffffff !important;
	background: #286c26 !important;
	border-color: #286c26 !important;
	transform: translateY(-1px);
	box-shadow: 0 7px 16px rgba(40, 108, 38, 0.2) !important;
}

.jm-product-card__add.loading {
	position: relative;
	opacity: 0.72;
	pointer-events: none;
}

.jm-product-card__add.added {
	background: #245f22 !important;
	border-color: #245f22 !important;
}

.jm-product-card__basket-icon {
	display: block;
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
}

.jm-product-card__basket-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* =========================================================
   MORE DETAILS BUTTON
   Full-width secondary action
   ========================================================= */

.jm-product-card__details {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 7px !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 9px 14px !important;
	color: #33752f !important;
	background: #f3f8f0 !important;
	border: 1px solid #cedbc8 !important;
	border-radius: 11px !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	transition:
		color 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}

.jm-product-card__details svg {
	display: block;
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	fill: currentColor;
	transition: transform 180ms ease;
}

.jm-product-card__details:hover,
.jm-product-card__details:focus {
	color: #ffffff !important;
	background: #668e55 !important;
	border-color: #668e55 !important;
	transform: translateY(-1px);
}

.jm-product-card__details:hover svg,
.jm-product-card__details:focus svg {
	transform: translateX(3px);
}

/* Variable products or products with options. */
.jm-product-card__add--options {
	width: 100% !important;
}

/* Hide WooCommerce's automatic text link after AJAX add-to-basket. */
.jm-product-card a.added_to_cart {
	display: none !important;
}

/* =========================================================
   EMPTY PRODUCTS MESSAGE
   ========================================================= */

.jm-products-empty {
	width: 100%;
	padding: 25px;
	color: #556052;
	background: #f5f8f2;
	border: 1px solid #dce5d7;
	border-radius: 15px;
	font-size: 16px;
	line-height: 1.5;
	text-align: center;
}

/* =========================================================
   DESKTOP WIDTH ADJUSTMENT
   At narrower desktop widths, the cards become vertically
   arranged so the controls remain properly sized.
   ========================================================= */

@media screen and (max-width: 1380px) {
	.jm-product-card {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.jm-product-card__image-link {
		height: auto;
	}

	.jm-product-card__image {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.jm-product-card__image img {
		width: 100%;
		height: 100%;
		min-height: 0;
		aspect-ratio: 16 / 10;
		object-fit: cover;
	}

	.jm-product-card__content {
		padding: 24px;
	}

	.jm-product-card__availability {
		margin-top: 4px;
	}
}

/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 980px) {
	.jm-product-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.jm-product-card {
		grid-template-columns: minmax(250px, 38%) minmax(0, 62%);
	}

	.jm-product-card__image-link {
		height: 100%;
	}

	.jm-product-card__image {
		height: 100%;
		min-height: 390px;
		aspect-ratio: auto;
	}

	.jm-product-card__image img {
		height: 100%;
		min-height: 390px;
		aspect-ratio: auto;
	}

	.jm-product-card__content {
		padding: 26px;
	}
}

/* =========================================================
   SMALL TABLET
   ========================================================= */

@media screen and (max-width: 760px) {
	.jm-product-card {
		display: block;
		min-height: 0;
		border-radius: 17px;
	}

	.jm-product-card:hover {
		transform: none;
	}

	.jm-product-card__image {
		width: 100%;
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.jm-product-card__image img {
		width: 100%;
		height: 100%;
		min-height: 0;
		aspect-ratio: 16 / 10;
		object-fit: cover;
	}

	.jm-product-card__content {
		padding: 21px;
	}

	.jm-product-card__title {
		font-size: 22px;
	}

	.jm-product-card__price {
		font-size: 21px;
	}

	.jm-product-card__availability {
		margin-top: 0;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 560px) {
	.jm-product-grid {
		gap: 18px;
	}

	.jm-product-card__content {
		padding: 18px;
	}

	.jm-product-card__title {
		margin-bottom: 8px;
		font-size: 20px;
		line-height: 1.22;
	}

	.jm-product-card__price {
		margin-bottom: 13px;
		font-size: 20px;
	}

	.jm-product-card__description {
		margin-bottom: 15px;
		font-size: 14px;
		line-height: 1.55;
	}

	.jm-product-card__availability {
		margin-bottom: 17px;
	}

	.jm-product-card__cart {
		grid-template-columns: 116px minmax(0, 1fr);
		gap: 9px;
	}

	.jm-product-card__add,
	.jm-product-card a.jm-product-card__add,
	.jm-product-card button.jm-product-card__add {
		padding-right: 10px !important;
		padding-left: 10px !important;
		font-size: 13px !important;
	}
}

/* =========================================================
   VERY SMALL PHONES
   Quantity and add-to-basket stack vertically.
   ========================================================= */

@media screen and (max-width: 420px) {
	.jm-product-card__content {
		padding: 16px;
	}

	.jm-product-card__cart {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.jm-product-card__quantity {
		width: 100%;
		min-width: 0;
	}

	.jm-quantity-control {
		grid-template-columns: 44px minmax(48px, 1fr) 44px;
		width: 100%;
		height: 46px;
	}

	.jm-quantity-button {
		width: 44px !important;
		min-width: 44px !important;
		height: 44px !important;
		min-height: 44px !important;
	}

	.jm-quantity-control .quantity {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: 44px !important;
	}

	.jm-quantity-control input.qty,
	.jm-quantity-control .qty,
	.jm-quantity-control input[type="number"] {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: 44px !important;
		min-height: 44px !important;
		line-height: 44px !important;
	}

	.jm-product-card__add,
	.jm-product-card a.jm-product-card__add,
	.jm-product-card button.jm-product-card__add,
	.jm-product-card__details {
		width: 100% !important;
		min-height: 46px !important;
		height: auto !important;
	}
}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */

.jm-product-card a:focus-visible,
.jm-product-card button:focus-visible,
.jm-product-card input:focus-visible {
	outline: 3px solid rgba(54, 126, 49, 0.34) !important;
	outline-offset: 2px;
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.jm-product-card,
	.jm-product-card *,
	.jm-product-card *::before,
	.jm-product-card *::after {
		scroll-behaviour: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* =========================================================
   JM HEADER SHOP AND BASKET BUTTONS
   COMPLETE REPLACEMENT SIZE CORRECTION
   ========================================================= */

/* Shared height and alignment */

#header a[href*="/shop"],
#header .jm-basket-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	height: 76px !important;
	min-height: 76px !important;
	max-height: 76px !important;

	margin: 0 !important;

	box-sizing: border-box !important;

	background: #9fbe7b !important;
	color: #ffffff !important;

	border: 1px solid rgba(36, 84, 35, 0.2) !important;

	box-shadow: none !important;

	vertical-align: middle !important;
}


/* =========================================================
   SHOP BUTTON
   Narrower with squarer corners
   ========================================================= */

#header a[href*="/shop"] {
	width: 92px !important;
	min-width: 92px !important;
	max-width: 92px !important;

	padding: 7px 9px !important;

	border-radius: 14px !important;

	text-decoration: none !important;

	overflow: hidden !important;
}


/* Shop icon */

#header a[href*="/shop"] img {
	display: block !important;

	width: 65px !important;
	height: 65px !important;
	max-width: 65px !important;
	max-height: 65px !important;

	margin: 0 !important;
	padding: 0 !important;

	object-fit: contain !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;
}


/* Shop hover */

#header a[href*="/shop"]:hover,
#header a[href*="/shop"]:focus {
	background: #8eae69 !important;
	color: #ffffff !important;

	border-color: rgba(36, 84, 35, 0.3) !important;

	text-decoration: none !important;

	transform: none !important;

	outline: none !important;
}


/* =========================================================
   BASKET BUTTON
   Same height but more compact
   ========================================================= */

#header .jm-basket-button {
	width: auto !important;
	min-width: 190px !important;
	max-width: 215px !important;

	gap: 12px !important;

	padding: 9px 18px !important;

	border-radius: 14px !important;
}


/* Basket icon */

#header .jm-basket-button__icon,
#header .jm-basket-button__icon img {
	width: 42px !important;
	height: 42px !important;
	min-width: 42px !important;
	max-width: 42px !important;

	margin: 0 !important;
	padding: 0 !important;
}


/* Basket text */

#header .jm-basket-button__text {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;

	gap: 2px !important;

	min-width: 0 !important;
}


#header .jm-basket-button__label {
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;

	white-space: nowrap !important;
}


#header .jm-basket-button__details {
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.1 !important;

	white-space: nowrap !important;
}


/* Basket hover */

#header .jm-basket-button:hover,
#header .jm-basket-button:focus {
	background: #8eae69 !important;
	color: #ffffff !important;

	border-color: rgba(36, 84, 35, 0.3) !important;

	transform: none !important;

	box-shadow: none !important;

	outline: none !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1024px) {

	#header a[href*="/shop"],
	#header .jm-basket-button {
		height: 68px !important;
		min-height: 68px !important;
		max-height: 68px !important;
	}


	#header a[href*="/shop"] {
		width: 82px !important;
		min-width: 82px !important;
		max-width: 82px !important;

		padding: 6px 8px !important;

		border-radius: 12px !important;
	}


	#header a[href*="/shop"] img {
		width: 57px !important;
		height: 57px !important;
		max-width: 57px !important;
		max-height: 57px !important;
	}


	#header .jm-basket-button {
		min-width: 172px !important;
		max-width: 195px !important;

		gap: 10px !important;

		padding: 8px 15px !important;

		border-radius: 12px !important;
	}


	#header .jm-basket-button__icon,
	#header .jm-basket-button__icon img {
		width: 37px !important;
		height: 37px !important;
		min-width: 37px !important;
		max-width: 37px !important;
	}


	#header .jm-basket-button__label {
		font-size: 16px !important;
	}


	#header .jm-basket-button__details {
		font-size: 12px !important;
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 680px) {

	#header a[href*="/shop"],
	#header .jm-basket-button {
		height: 56px !important;
		min-height: 56px !important;
		max-height: 56px !important;
	}


	#header a[href*="/shop"] {
		width: 64px !important;
		min-width: 64px !important;
		max-width: 64px !important;

		padding: 5px !important;

		border-radius: 10px !important;
	}


	#header a[href*="/shop"] img {
		width: 47px !important;
		height: 47px !important;
		max-width: 47px !important;
		max-height: 47px !important;
	}


	#header .jm-basket-button {
		min-width: 114px !important;
		max-width: 135px !important;

		gap: 7px !important;

		padding: 7px 11px !important;

		border-radius: 10px !important;
	}


	#header .jm-basket-button__icon,
	#header .jm-basket-button__icon img {
		width: 27px !important;
		height: 27px !important;
		min-width: 27px !important;
		max-width: 27px !important;
	}


	#header .jm-basket-button__text {
		display: block !important;
	}


	#header .jm-basket-button__label {
		font-size: 13px !important;
		line-height: 1 !important;
	}


	#header .jm-basket-button__details {
		display: none !important;
	}

}


/* =========================================================
   JM CONTACT LEAF — REMOVE FAINT RECTANGULAR BORDER
   ========================================================= */

.jm-contact-leaf,
.jm-contact-leaf:hover,
.jm-contact-leaf:focus,
.jm-contact-leaf:focus-visible,
.jm-contact-leaf:active {
	border: 0 !important;
	outline: 0 !important;

	background: transparent !important;
	background-color: transparent !important;

	box-shadow: none !important;

	-webkit-appearance: none !important;
	appearance: none !important;
}


.jm-contact-leaf img,
.jm-contact-leaf:hover img,
.jm-contact-leaf:focus img,
.jm-contact-leaf:focus-visible img,
.jm-contact-leaf:active img {
	display: block !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
	outline: 0 !important;
	border-radius: 0 !important;

	background: transparent !important;

	box-shadow: none !important;
}


/*
 * Accessible keyboard focus without showing a rectangular box.
 * This places a soft glow around the visible leaf instead.
 */

.jm-contact-leaf:focus-visible img {
	filter:
		drop-shadow(
			0 0 3px
			rgba(66, 91, 49, 0.55)
		)
		drop-shadow(
			0 6px 8px
			rgba(45, 72, 28, 0.16)
		) !important;
}


/*
 * Keep the normal wind animation shadow on mouse hover.
 */

.jm-contact-leaf:hover img {
	filter:
		brightness(1.035)
		drop-shadow(
			0 7px 9px
			rgba(45, 72, 28, 0.18)
		) !important;
}


/* ==========================================================
   JM FENCING & LANDSCAPING
   COOKIEYES COMPLETE STYLING
   FULL REPLACEMENT
   ========================================================== */

:root {
	--jm-cookie-green-deep: #4f6b3e;
	--jm-cookie-green-dark: #66834d;
	--jm-cookie-green-mid: #7f9a65;
	--jm-cookie-green-light: #bcd49a;
	--jm-cookie-green-pale: #f3f7ee;

	--jm-cookie-white: #ffffff;
	--jm-cookie-off-white: #fafbf8;
	--jm-cookie-soft-grey: #f5f7f3;

	--jm-cookie-text: #252a24;
	--jm-cookie-muted: #636b60;

	--jm-cookie-border: #d9e0d4;
	--jm-cookie-border-strong: #bdc9b5;
}

/* ==========================================================
   FLOATING COOKIE SETTINGS BUTTON
   ========================================================== */

.jm-cookie-button {
	position: fixed !important;
	z-index: 999990 !important;

	left: max(16px, env(safe-area-inset-left)) !important;
	bottom: max(16px, env(safe-area-inset-bottom)) !important;

	display: grid !important;
	place-items: center !important;

	width: 52px !important;
	height: 52px !important;
	min-width: 52px !important;
	min-height: 52px !important;

	padding: 0 !important;
	margin: 0 !important;

	border: 2px solid var(--jm-cookie-green-dark) !important;
	border-radius: 50% !important;

	background: var(--jm-cookie-green-deep) !important;
	color: var(--jm-cookie-white) !important;

	box-shadow:
		0 8px 22px rgba(31, 47, 25, 0.24),
		0 2px 7px rgba(0, 0, 0, 0.14) !important;

	cursor: pointer !important;

	-webkit-appearance: none !important;
	appearance: none !important;

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease !important;
}

.jm-cookie-button:hover {
	transform: translateY(-2px) !important;

	border-color: var(--jm-cookie-green-light) !important;
	background: var(--jm-cookie-green-dark) !important;

	box-shadow:
		0 11px 28px rgba(31, 47, 25, 0.3),
		0 3px 8px rgba(0, 0, 0, 0.17) !important;
}

.jm-cookie-button:active {
	transform: translateY(0) !important;
}

.jm-cookie-button:focus-visible {
	outline: 3px solid rgba(188, 212, 154, 0.72) !important;
	outline-offset: 4px !important;
}

.jm-cookie-button__icon {
	display: grid !important;
	place-items: center !important;

	width: 40px !important;
	height: 40px !important;

	border: 1px solid rgba(255, 255, 255, 0.32) !important;
	border-radius: 50% !important;

	background: transparent !important;
	color: var(--jm-cookie-white) !important;
}

.jm-cookie-button__icon svg {
	display: block !important;

	width: 30px !important;
	height: 30px !important;

	margin: 0 !important;
	padding: 0 !important;

	color: var(--jm-cookie-white) !important;
}

.jm-cookie-button__icon svg path {
	stroke: currentColor !important;
}

.jm-cookie-button__icon svg circle {
	fill: currentColor !important;
}

.jm-cookie-button__icon svg circle:first-child {
	fill: none !important;
}

/* ==========================================================
   COOKIEYES BACKDROP
   Visual treatment only.
   CookieYes retains its native positioning and click handling.
   ========================================================== */

.cky-overlay {
	background: rgba(24, 31, 21, 0.58) !important;

	-webkit-backdrop-filter: blur(3px) !important;
	backdrop-filter: blur(3px) !important;
}

/* ==========================================================
   PREFERENCE CENTRE WINDOW
   ========================================================== */

.cky-preference-center,
.cky-preference-center.cky-preference-center-open {
	display: flex !important;
	flex-direction: column !important;

	width: min(760px, calc(100vw - 34px)) !important;
	max-width: 760px !important;

	max-height: calc(100vh - 34px) !important;
	max-height: calc(100dvh - 34px) !important;

	padding: 0 !important;

	overflow: hidden !important;

	border: 1px solid rgba(79, 107, 62, 0.46) !important;
	border-radius: 20px 20px 20px 7px !important;

	background: var(--jm-cookie-white) !important;

	font-family: inherit !important;

	box-shadow:
		0 28px 88px rgba(21, 31, 17, 0.34),
		0 7px 22px rgba(0, 0, 0, 0.15) !important;
}

/* ==========================================================
   NATURAL GREEN HEADER
   ========================================================== */

.cky-preference-header {
	position: relative !important;

	flex: 0 0 auto !important;

	padding: 25px 66px 23px 28px !important;

	border: 0 !important;

	background:
		linear-gradient(
			135deg,
			#4f6b3e 0%,
			#66834d 52%,
			#78945c 100%
		) !important;
}

.cky-preference-header::before {
	content: "" !important;

	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;

	background:
		linear-gradient(
			110deg,
			rgba(255, 255, 255, 0.08),
			rgba(255, 255, 255, 0) 48%
		) !important;

	pointer-events: none !important;
}

.cky-preference-header::after {
	content: "" !important;

	position: absolute !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	z-index: 1 !important;

	height: 5px !important;

	background:
		linear-gradient(
			90deg,
			#39522c,
			var(--jm-cookie-green-light)
		) !important;

	pointer-events: none !important;
}

.cky-preference-title {
	position: relative !important;
	z-index: 2 !important;

	margin: 0 !important;

	color: var(--jm-cookie-white) !important;

	font-family: inherit !important;
	font-size: clamp(22px, 3vw, 28px) !important;
	font-weight: 750 !important;
	line-height: 1.18 !important;
	letter-spacing: -0.015em !important;
}

/* ==========================================================
   CLOSE BUTTON
   ========================================================== */

.cky-btn-close {
	top: 17px !important;
	right: 17px !important;
	z-index: 5 !important;

	display: grid !important;
	place-items: center !important;

	width: 42px !important;
	height: 42px !important;

	padding: 0 !important;

	border: 1px solid rgba(255, 255, 255, 0.38) !important;
	border-radius: 11px !important;

	background: rgba(255, 255, 255, 0.12) !important;
	color: var(--jm-cookie-white) !important;

	opacity: 1 !important;
	cursor: pointer !important;

	transition:
		background-color 160ms ease,
		border-color 160ms ease !important;
}

.cky-btn-close:hover {
	border-color: rgba(255, 255, 255, 0.72) !important;
	background: rgba(255, 255, 255, 0.2) !important;
}

.cky-btn-close:focus-visible {
	outline: 3px solid rgba(255, 255, 255, 0.5) !important;
	outline-offset: 3px !important;
}

.cky-btn-close img {
	filter: brightness(0) invert(1) !important;
}

/* ==========================================================
   SCROLLABLE BODY
   ========================================================== */

.cky-preference-body-wrapper {
	flex: 1 1 auto !important;
	min-height: 0 !important;

	overflow-x: hidden !important;
	overflow-y: auto !important;

	background: var(--jm-cookie-white) !important;

	scrollbar-color:
		var(--jm-cookie-green-dark)
		#edf1e9 !important;

	scrollbar-width: thin !important;

	overscroll-behavior: contain !important;
	-webkit-overflow-scrolling: touch !important;
}

.cky-preference-body-wrapper::-webkit-scrollbar {
	width: 9px !important;
}

.cky-preference-body-wrapper::-webkit-scrollbar-track {
	background: #edf1e9 !important;
}

.cky-preference-body-wrapper::-webkit-scrollbar-thumb {
	border: 2px solid #edf1e9 !important;
	border-radius: 20px !important;

	background: var(--jm-cookie-green-dark) !important;
}

/* ==========================================================
   INTRODUCTORY CONTENT
   ========================================================== */

.cky-preference-content-wrapper {
	padding: 24px 28px 21px !important;

	border-bottom: 1px solid var(--jm-cookie-border) !important;

	background: var(--jm-cookie-white) !important;
}

.cky-preference-content-wrapper,
.cky-preference-content-wrapper p,
.cky-preference-content-wrapper span {
	color: var(--jm-cookie-muted) !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.68 !important;
}

.cky-preference-content-wrapper p {
	margin: 0 0 13px !important;
}

.cky-preference-content-wrapper p:last-child {
	margin-bottom: 0 !important;
}

.cky-show-desc-btn {
	color: var(--jm-cookie-green-deep) !important;

	font-weight: 750 !important;
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;

	cursor: pointer !important;
}

.cky-show-desc-btn:hover {
	color: #304625 !important;
}

/* ==========================================================
   COOKIE CATEGORY AREA
   ========================================================== */

.cky-accordion-wrapper {
	padding: 16px 20px 20px !important;

	background: var(--jm-cookie-off-white) !important;
}

.cky-accordion {
	overflow: hidden !important;

	margin: 0 0 14px !important;

	border: 1px solid var(--jm-cookie-border) !important;
	border-radius: 14px 14px 14px 5px !important;

	background: var(--jm-cookie-white) !important;

	box-shadow:
		0 2px 8px rgba(34, 49, 28, 0.045) !important;
}

.cky-accordion:last-child {
	margin-bottom: 0 !important;
}

.cky-accordion-item {
	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;

	background: transparent !important;
}

/* ==========================================================
   CATEGORY HEADER
   ========================================================== */

.cky-accordion-header {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;

	width: 100% !important;
	min-height: 70px !important;

	padding: 12px 16px !important;
	margin: 0 !important;

	border: 0 !important;
	border-bottom: 1px solid var(--jm-cookie-border) !important;

	background:
		linear-gradient(
			180deg,
			#ffffff 0%,
			#f5f8f2 100%
		) !important;

	box-sizing: border-box !important;
}

.cky-accordion-header:hover {
	background:
		linear-gradient(
			180deg,
			#fbfdf9 0%,
			#eaf2e3 100%
		) !important;
}

.cky-accordion-header:focus-within {
	outline: 3px solid rgba(188, 212, 154, 0.68) !important;
	outline-offset: -3px !important;
}

/* ==========================================================
   CATEGORY TITLE BUTTON
   ========================================================== */

.cky-accordion-btn,
button.cky-accordion-btn,
[data-cky-tag="detail-category-title"] {
	position: relative !important;

	display: flex !important;
	flex: 1 1 auto !important;
	align-items: center !important;
	gap: 13px !important;

	width: auto !important;
	min-width: 0 !important;
	min-height: 46px !important;

	padding: 7px 13px 7px 7px !important;
	margin: 0 !important;

	border: 1px solid rgba(102, 131, 77, 0.3) !important;
	border-radius: 11px 11px 11px 4px !important;

	background: rgba(188, 212, 154, 0.13) !important;
	color: var(--jm-cookie-green-deep) !important;

	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 750 !important;
	line-height: 1.3 !important;
	letter-spacing: 0.005em !important;
	text-align: left !important;
	text-decoration: none !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.76),
		0 1px 3px rgba(34, 49, 28, 0.045) !important;

	opacity: 1 !important;
	visibility: visible !important;

	cursor: pointer !important;

	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		color 160ms ease,
		box-shadow 160ms ease !important;
}

/* ==========================================================
   BOXED ARROW
   ========================================================== */

.cky-accordion-btn::before,
button.cky-accordion-btn::before,
[data-cky-tag="detail-category-title"]::before {
	content: "" !important;

	position: relative !important;

	display: block !important;
	flex: 0 0 36px !important;

	width: 36px !important;
	height: 36px !important;

	margin: 0 !important;

	border: 1px solid var(--jm-cookie-border-strong) !important;
	border-radius: 9px 9px 9px 3px !important;

	background:
		linear-gradient(
			180deg,
			#ffffff,
			#eef4e9
		) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.85),
		0 1px 3px rgba(34, 49, 28, 0.07) !important;

	box-sizing: border-box !important;
}

.cky-accordion-btn::after,
button.cky-accordion-btn::after,
[data-cky-tag="detail-category-title"]::after {
	content: "" !important;

	position: absolute !important;
	top: 50% !important;
	left: 25px !important;

	width: 9px !important;
	height: 9px !important;

	border: 0 !important;
	border-right: 2px solid var(--jm-cookie-green-deep) !important;
	border-bottom: 2px solid var(--jm-cookie-green-deep) !important;

	background: transparent !important;

	transform:
		translate(-58%, -50%)
		rotate(-45deg) !important;

	transform-origin: center !important;

	transition: transform 170ms ease !important;
}

/* Keep category title text visible */

.cky-accordion-btn span,
.cky-accordion-btn p,
[data-cky-tag="detail-category-title"] span,
[data-cky-tag="detail-category-title"] p {
	display: inline !important;

	width: auto !important;
	height: auto !important;

	padding: 0 !important;
	margin: 0 !important;

	color: inherit !important;

	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;

	opacity: 1 !important;
	visibility: visible !important;
}

/* Hide CookieYes's separate small chevron */

.cky-accordion-chevron {
	display: none !important;
}

/* Hover */

.cky-accordion-header:hover .cky-accordion-btn,
.cky-accordion-btn:hover,
[data-cky-tag="detail-category-title"]:hover {
	border-color: var(--jm-cookie-green-dark) !important;

	background: rgba(188, 212, 154, 0.28) !important;
	color: #39522c !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.82),
		0 3px 8px rgba(34, 49, 28, 0.09) !important;
}

.cky-accordion-btn:focus-visible,
[data-cky-tag="detail-category-title"]:focus-visible {
	outline: 3px solid rgba(188, 212, 154, 0.72) !important;
	outline-offset: 2px !important;
}

/* Rotate arrow when open */

.cky-accordion-btn[aria-expanded="true"]::after,
[data-cky-tag="detail-category-title"][aria-expanded="true"]::after,
.cky-accordion-item.cky-accordion-active
	.cky-accordion-btn::after,
.cky-accordion.cky-accordion-active
	.cky-accordion-btn::after,
.cky-accordion-item.active
	.cky-accordion-btn::after {
	transform:
		translate(-50%, -62%)
		rotate(45deg) !important;
}

/* ==========================================================
   ALWAYS ACTIVE LABEL
   ========================================================== */

.cky-always-active {
	display: inline-flex !important;
	flex: 0 0 auto !important;
	align-items: center !important;
	justify-content: center !important;

	min-height: 38px !important;

	padding: 8px 13px !important;
	margin: 0 0 0 auto !important;

	border: 1px solid rgba(102, 131, 77, 0.24) !important;
	border-radius: 9px 9px 9px 3px !important;

	background: rgba(188, 212, 154, 0.16) !important;
	color: var(--jm-cookie-green-deep) !important;

	font-family: inherit !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.045em !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
}

/* ==========================================================
   CATEGORY DESCRIPTION
   ========================================================== */

.cky-accordion-body {
	display: block !important;

	width: 100% !important;

	padding: 24px 28px 27px !important;
	margin: 0 !important;

	border: 0 !important;

	background: var(--jm-cookie-white) !important;
	color: var(--jm-cookie-muted) !important;

	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;

	box-sizing: border-box !important;
}

.cky-accordion-body > div,
.cky-accordion-body .cky-accordion-body-des,
.cky-accordion-body .cky-accordion-content {
	display: block !important;

	width: 100% !important;

	padding: 0 !important;
	margin: 0 !important;

	box-sizing: border-box !important;
}

.cky-accordion-body p {
	display: block !important;

	width: 100% !important;

	padding: 0 !important;
	margin: 0 !important;

	color: var(--jm-cookie-muted) !important;

	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 400 !important;
	line-height: inherit !important;
}

.cky-accordion-body span {
	color: inherit !important;

	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
}

.cky-accordion-body strong,
.cky-accordion-body b {
	color: var(--jm-cookie-text) !important;
	font-weight: 600 !important;
}

/* Prevent Themify offsets from affecting content */

.cky-accordion-body,
.cky-accordion-body *,
.cky-accordion-header,
.cky-accordion-header * {
	text-indent: 0 !important;
}

/* ==========================================================
   CATEGORY SWITCHES
   ========================================================== */

.cky-switch {
	flex: 0 0 auto !important;

	cursor: pointer !important;
}

.cky-switch input + .cky-slider {
	border: 1px solid #afb5ab !important;

	background: #c8ccc5 !important;
}

.cky-switch input:checked + .cky-slider {
	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-green-dark) !important;
}

.cky-switch input:focus-visible + .cky-slider {
	outline: 3px solid rgba(188, 212, 154, 0.65) !important;
	outline-offset: 3px !important;
}

/* ==========================================================
   COOKIE DETAILS TABLE
   ========================================================== */

.cky-audit-table {
	overflow: hidden !important;

	width: 100% !important;

	border: 1px solid var(--jm-cookie-border) !important;
	border-radius: 9px !important;

	background: var(--jm-cookie-white) !important;
}

.cky-audit-table th {
	padding: 10px !important;

	background: var(--jm-cookie-green-deep) !important;
	color: var(--jm-cookie-white) !important;

	font-size: 12px !important;
	font-weight: 700 !important;
}

.cky-audit-table td {
	padding: 10px !important;

	border-color: var(--jm-cookie-border) !important;

	color: var(--jm-cookie-text) !important;

	font-size: 12px !important;
}

/* ==========================================================
   PREFERENCE CENTRE FOOTER
   ========================================================== */

.cky-footer-wrapper {
	flex: 0 0 auto !important;

	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 10px !important;

	width: 100% !important;
	max-width: none !important;

	padding: 16px 20px 19px !important;
	margin: 0 !important;

	border-top: 1px solid var(--jm-cookie-border) !important;

	background: var(--jm-cookie-white) !important;

	box-sizing: border-box !important;

	box-shadow:
		0 -8px 22px rgba(34, 49, 28, 0.055) !important;
}

.cky-footer-wrapper > div,
.cky-footer-wrapper .cky-prefrence-btn-wrapper,
.cky-footer-wrapper .cky-preference-btn-wrapper {
	display: contents !important;
}

.cky-footer-wrapper .cky-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	min-height: 50px !important;

	margin: 0 !important;
	padding: 11px 14px !important;

	border: 1px solid var(--jm-cookie-green-deep) !important;
	border-radius: 10px 10px 10px 3px !important;

	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 720 !important;
	line-height: 1.25 !important;
	text-align: center !important;

	box-shadow: none !important;

	opacity: 1 !important;
	cursor: pointer !important;

	transition:
		transform 160ms ease,
		background-color 160ms ease,
		border-color 160ms ease,
		color 160ms ease !important;
}

.cky-footer-wrapper .cky-btn:hover {
	transform: translateY(-1px) !important;

	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-green-deep) !important;
	color: var(--jm-cookie-white) !important;

	opacity: 1 !important;
}

.cky-footer-wrapper .cky-btn:focus-visible {
	outline: 3px solid rgba(188, 212, 154, 0.72) !important;
	outline-offset: 2px !important;
}

.cky-footer-wrapper .cky-btn-reject {
	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-white) !important;
	color: var(--jm-cookie-green-deep) !important;
}

.cky-footer-wrapper .cky-btn-preferences {
	border-color: var(--jm-cookie-green-dark) !important;

	background: var(--jm-cookie-green-pale) !important;
	color: var(--jm-cookie-green-deep) !important;
}

.cky-footer-wrapper .cky-btn-accept {
	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-green-deep) !important;
	color: var(--jm-cookie-white) !important;
}

/* ==========================================================
   INITIAL COOKIE NOTICE
   ========================================================== */

.cky-consent-container {
	z-index: 999999 !important;

	width: min(590px, calc(100vw - 36px)) !important;
	max-width: 590px !important;

	right: 20px !important;
	bottom: 20px !important;
	left: auto !important;

	font-family: inherit !important;
}

.cky-consent-container .cky-consent-bar {
	overflow: hidden !important;

	padding: 0 !important;

	border: 1px solid rgba(79, 107, 62, 0.42) !important;
	border-radius: 19px 19px 19px 7px !important;

	background: var(--jm-cookie-white) !important;

	box-shadow:
		0 24px 70px rgba(32, 47, 26, 0.24),
		0 5px 18px rgba(0, 0, 0, 0.12) !important;
}

.cky-consent-container .cky-consent-bar::before {
	content: "" !important;

	display: block !important;

	width: 100% !important;
	height: 7px !important;

	background:
		linear-gradient(
			90deg,
			var(--jm-cookie-green-deep),
			var(--jm-cookie-green-light)
		) !important;
}

.cky-consent-container .cky-notice {
	padding: 24px 25px 25px !important;
}

.cky-consent-container .cky-title {
	margin: 0 0 11px !important;

	color: var(--jm-cookie-green-deep) !important;

	font-family: inherit !important;
	font-size: 25px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
}

.cky-consent-container .cky-notice-des,
.cky-consent-container .cky-notice-des p {
	color: var(--jm-cookie-muted) !important;

	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.62 !important;
}

.cky-consent-container .cky-notice-btn-wrapper {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 10px !important;

	margin-top: 20px !important;
}

.cky-consent-container .cky-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-height: 48px !important;

	margin: 0 !important;
	padding: 11px 13px !important;

	border: 1px solid var(--jm-cookie-green-deep) !important;
	border-radius: 10px 10px 10px 3px !important;

	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 720 !important;
	line-height: 1.25 !important;
	text-align: center !important;

	box-shadow: none !important;

	opacity: 1 !important;
	cursor: pointer !important;
}

.cky-consent-container .cky-btn-reject {
	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-white) !important;
	color: var(--jm-cookie-green-deep) !important;
}

.cky-consent-container .cky-btn-accept {
	border-color: var(--jm-cookie-green-deep) !important;

	background: var(--jm-cookie-green-deep) !important;
	color: var(--jm-cookie-white) !important;
}

.cky-consent-container .cky-btn-customize {
	grid-column: 1 / -1 !important;

	border-color: var(--jm-cookie-green-dark) !important;

	background: var(--jm-cookie-green-pale) !important;
	color: var(--jm-cookie-green-deep) !important;
}

.cky-consent-container .cky-btn:hover {
	border-color: var(--jm-cookie-green-dark) !important;

	background: var(--jm-cookie-green-dark) !important;
	color: var(--jm-cookie-white) !important;

	opacity: 1 !important;
}

/* ==========================================================
   TABLET AND MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.jm-cookie-button {
		left: max(11px, env(safe-area-inset-left)) !important;
		bottom: max(11px, env(safe-area-inset-bottom)) !important;

		width: 46px !important;
		height: 46px !important;
		min-width: 46px !important;
		min-height: 46px !important;
	}

	.jm-cookie-button__icon {
		width: 35px !important;
		height: 35px !important;
	}

	.jm-cookie-button__icon svg {
		width: 26px !important;
		height: 26px !important;
	}

	.cky-preference-center,
	.cky-preference-center.cky-preference-center-open {
		width: calc(100vw - 20px) !important;
		max-width: calc(100vw - 20px) !important;

		max-height: calc(100vh - 20px) !important;
		max-height: calc(100dvh - 20px) !important;

		border-radius: 17px 17px 17px 5px !important;
	}

	.cky-preference-header {
		padding: 21px 58px 19px 19px !important;
	}

	.cky-preference-title {
		font-size: 21px !important;
	}

	.cky-preference-content-wrapper {
		padding: 19px 19px 17px !important;
	}

	.cky-preference-content-wrapper,
	.cky-preference-content-wrapper p,
	.cky-preference-content-wrapper span {
		font-size: 14px !important;
	}

	.cky-accordion-wrapper {
		padding: 12px 11px 14px !important;
	}

	.cky-accordion {
		margin-bottom: 11px !important;

		border-radius: 12px 12px 12px 4px !important;
	}

	.cky-accordion-header {
		flex-wrap: wrap !important;
		gap: 8px !important;

		min-height: 62px !important;

		padding: 10px !important;
	}

	.cky-accordion-btn,
	button.cky-accordion-btn,
	[data-cky-tag="detail-category-title"] {
		min-height: 42px !important;

		padding: 5px 9px 5px 5px !important;

		font-size: 15px !important;
	}

	.cky-accordion-btn::before,
	button.cky-accordion-btn::before,
	[data-cky-tag="detail-category-title"]::before {
		flex-basis: 32px !important;

		width: 32px !important;
		height: 32px !important;
	}

	.cky-accordion-btn::after,
	button.cky-accordion-btn::after,
	[data-cky-tag="detail-category-title"]::after {
		left: 21px !important;

		width: 8px !important;
		height: 8px !important;
	}

	.cky-always-active {
		min-height: 34px !important;

		padding: 6px 8px !important;

		font-size: 9px !important;
		letter-spacing: 0.03em !important;
	}

	.cky-accordion-body {
		padding: 18px !important;

		font-size: 13px !important;
	}

	.cky-footer-wrapper {
		grid-template-columns: 1fr !important;
		gap: 8px !important;

		padding: 13px !important;
	}

	.cky-footer-wrapper .cky-btn {
		width: 100% !important;
		max-width: none !important;
		min-height: 48px !important;
	}

	.cky-consent-container {
		width: calc(100vw - 24px) !important;
		max-width: calc(100vw - 24px) !important;

		right: 12px !important;
		bottom: 12px !important;
		left: 12px !important;
	}

	.cky-consent-container .cky-notice {
		padding: 21px 19px 20px !important;
	}

	.cky-consent-container .cky-title {
		font-size: 22px !important;
	}

	.cky-consent-container .cky-notice-btn-wrapper {
		grid-template-columns: 1fr !important;
	}

	.cky-consent-container .cky-btn-customize {
		grid-column: 1 !important;
	}
}

/* ==========================================================
   NARROW MOBILE
   ========================================================== */

@media (max-width: 430px) {

	.cky-accordion-header {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.cky-accordion-btn,
	button.cky-accordion-btn,
	[data-cky-tag="detail-category-title"] {
		width: 100% !important;
	}

	.cky-always-active {
		width: fit-content !important;

		margin: 0 0 0 45px !important;
	}
}

/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */

@media (max-width: 380px) {

	.jm-cookie-button {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.jm-cookie-button__icon {
		width: 33px !important;
		height: 33px !important;
	}

	.jm-cookie-button__icon svg {
		width: 25px !important;
		height: 25px !important;
	}

	.cky-preference-title {
		font-size: 19px !important;
	}

	.cky-preference-content-wrapper,
	.cky-preference-content-wrapper p,
	.cky-preference-content-wrapper span,
	.cky-accordion-body {
		font-size: 13px !important;
	}
}

/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

	.jm-cookie-button,
	.cky-accordion-btn,
	.cky-footer-wrapper .cky-btn,
	.cky-consent-container .cky-btn {
		transition: none !important;
	}

	.jm-cookie-button:hover,
	.jm-cookie-button:active,
	.cky-footer-wrapper .cky-btn:hover {
		transform: none !important;
	}
}


/* ==========================================================
   JM PRODUCT CARDS — REMOVE AUTOMATIC VIEW BASKET LINK
   The site already provides its own basket access
   ========================================================== */

.jm-product-card .added_to_cart,
.jm-product-card a.added_to_cart,
.jm-product-card__actions .added_to_cart,
.jm-product-card__cart + .added_to_cart,
.jm-product-section a.added_to_cart {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}


/* ==========================================================
   14. FINAL VARIABLE-PRODUCT CONTROLS
   Load-size selector, quantity spacing and Add to basket layout
   Keep this section at the end of the stylesheet.
   ========================================================== */


/* ==========================================================
   LOAD SIZE SELECTOR
   Ensures "Choose an option" is shown in full
   ========================================================== */

.single-product
.variations_form
table.variations {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: auto !important;
}

.single-product
.variations_form
table.variations
td.value {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 12px !important;

	width: 100% !important;
	max-width: 100% !important;

	padding: 0 !important;
}

.single-product
.variations_form
table.variations
td.value
select,
.single-product
.variations_form
select[name^="attribute_"] {
	display: block !important;
	flex: 0 1 440px !important;

	width: 100% !important;
	min-width: 380px !important;
	max-width: 440px !important;
	min-height: 68px !important;

	box-sizing: border-box !important;

	margin: 0 !important;
	padding: 12px 58px 12px 24px !important;

	border-radius: 18px !important;

	font-family: inherit !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;

	white-space: nowrap !important;
	text-overflow: clip !important;

	background-position: right 20px center !important;

	cursor: pointer !important;
}

.single-product
.variations_form
table.variations
td.value
select:focus,
.single-product
.variations_form
select[name^="attribute_"]:focus {
	border-color: #176b2b !important;
	outline: 3px solid rgba(23, 107, 43, 0.14) !important;
	outline-offset: 2px !important;
}

.single-product
.variations_form
.reset_variations {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	flex: 0 0 auto !important;

	margin: 0 !important;
}


/* ==========================================================
   PURCHASE CONTROLS
   Keeps quantity and Add to basket comfortably separated
   ========================================================== */

.single-product
.variations_form
.woocommerce-variation-add-to-cart,
.single-product
.variations_form
.woocommerce-variation-add-to-cart.variations_button {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;

	width: 100% !important;
	max-width: 360px !important;

	margin: 0 !important;
	padding: 0 !important;

	gap: 20px !important;
}

.single-product
.variations_form
.woocommerce-variation-add-to-cart
.quantity {
	display: flex !important;
	align-items: stretch !important;
	justify-content: flex-start !important;

	width: 272px !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	float: none !important;
}

.single-product
.variations_form
.woocommerce-variation-add-to-cart
.quantity
button,
.single-product
.variations_form
.woocommerce-variation-add-to-cart
.quantity
input.qty {
	min-height: 64px !important;
}

.single-product
.variations_form
.single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-height: 68px !important;

	margin: 0 !important;
	padding: 14px 24px !important;

	float: none !important;

	font-size: clamp(18px, 1.25vw, 24px) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;

	text-align: center !important;
	white-space: normal !important;
}

.single-product
.variations_form
.quantity
+
.single_add_to_cart_button {
	margin-top: 0 !important;
	margin-left: 0 !important;
}

.single-product
.single_variation_wrap
.woocommerce-variation-price {
	margin: 0 0 24px !important;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (max-width: 900px) {

	.single-product
	.variations_form
	table.variations
	td.value
	select,
	.single-product
	.variations_form
	select[name^="attribute_"] {
		min-width: 340px !important;
		max-width: 420px !important;

		font-size: 19px !important;
	}

	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart,
	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart.variations_button {
		max-width: 100% !important;

		gap: 18px !important;
	}

	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart
	.quantity {
		width: 272px !important;
	}
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media screen and (max-width: 600px) {

	.single-product
	.variations_form
	table.variations
	td.value {
		display: block !important;

		width: 100% !important;
	}

	.single-product
	.variations_form
	table.variations
	td.value
	select,
	.single-product
	.variations_form
	select[name^="attribute_"] {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		min-height: 60px !important;

		padding: 10px 52px 10px 18px !important;

		font-size: 17px !important;
		line-height: 1.25 !important;

		background-position: right 16px center !important;
	}

	.single-product
	.variations_form
	.reset_variations {
		margin-top: 10px !important;
	}

	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart,
	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart.variations_button {
		width: 100% !important;
		max-width: none !important;

		gap: 16px !important;
	}

	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart
	.quantity {
		width: 100% !important;
	}

	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart
	.quantity
	button,
	.single-product
	.variations_form
	.woocommerce-variation-add-to-cart
	.quantity
	input.qty {
		flex: 1 1 33.333% !important;

		min-width: 0 !important;
		min-height: 58px !important;
	}

	.single-product
	.variations_form
	.single_add_to_cart_button {
		width: 100% !important;
		min-height: 62px !important;

		padding: 14px 18px !important;

		font-size: 19px !important;
	}
}





/* ==========================================================
   JM VARIABLE PRODUCT FORM — CONTAINMENT FIX
   Keeps the dropdown, quantity and Add to basket button
   fully inside the product panel
   ========================================================== */

body.single-product
.summary
form.variations_form.cart {
	display: grid !important;
	grid-template-columns:
		minmax(0, 1fr)
		minmax(260px, 340px) !important;

	align-items: start !important;
	gap: 30px !important;

	width: 100% !important;
	max-width: 100% !important;

	margin: 0 0 24px !important;
	padding: 28px !important;

	overflow: hidden !important;
	box-sizing: border-box !important;
}


/* ==========================================================
   LOAD SIZE COLUMN
   ========================================================== */

body.single-product
.summary
form.variations_form.cart
table.variations {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;
}


body.single-product
.summary
form.variations_form.cart
table.variations tbody,
body.single-product
.summary
form.variations_form.cart
table.variations tr,
body.single-product
.summary
form.variations_form.cart
table.variations th,
body.single-product
.summary
form.variations_form.cart
table.variations td {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	box-sizing: border-box !important;
}


body.single-product
.summary
form.variations_form.cart
table.variations
td.value {
	position: relative !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	padding: 0 !important;
}


/* Full dropdown text without causing overflow */

body.single-product
.summary
form.variations_form.cart
select[name^="attribute_"] {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 68px !important;

	margin: 0 !important;
	padding: 12px 58px 12px 24px !important;

	box-sizing: border-box !important;

	border-radius: 18px !important;

	font-size: 20px !important;
	line-height: 1.25 !important;

	white-space: nowrap !important;
	text-overflow: clip !important;
}


/* Variation reset link */

body.single-product
.summary
form.variations_form.cart
.reset_variations {
	display: inline-flex !important;

	margin: 12px 0 0 !important;
}


/* ==========================================================
   PRICE, QUANTITY AND BUTTON COLUMN
   ========================================================== */

body.single-product
.summary
form.variations_form.cart
.single_variation_wrap {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	box-sizing: border-box !important;
}


body.single-product
.summary
form.variations_form.cart
.single_variation {
	width: 100% !important;
	max-width: 100% !important;

	margin: 0 0 18px !important;
}


body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-price {
	width: 100% !important;

	margin: 0 0 18px !important;
	padding: 0 !important;
}


/* Purchase controls stack neatly */

body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart,
body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart.variations_button {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	gap: 18px !important;

	box-sizing: border-box !important;
}


/* Quantity selector stays within the right column */

body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart
.quantity {
	display: grid !important;
	grid-template-columns:
		minmax(52px, 1fr)
		minmax(52px, 1fr)
		minmax(52px, 1fr) !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	height: 64px !important;
	min-height: 64px !important;
	max-height: none !important;

	margin: 0 !important;

	flex: none !important;
}


/* Make all three quantity parts fit equally */

body.single-product
.summary
form.variations_form.cart
.quantity button,
body.single-product
.summary
form.variations_form.cart
.quantity .minus,
body.single-product
.summary
form.variations_form.cart
.quantity .plus,
body.single-product
.summary
form.variations_form.cart
.quantity .qty-minus,
body.single-product
.summary
form.variations_form.cart
.quantity .qty-plus,
body.single-product
.summary
form.variations_form.cart
.quantity input.qty {
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;

	height: 62px !important;
	min-height: 62px !important;
	max-height: 62px !important;
}


/* Add to basket button remains fully inside the panel */

body.single-product
.summary
form.variations_form.cart
.single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 66px !important;

	margin: 0 !important;
	padding: 14px 18px !important;

	box-sizing: border-box !important;

	white-space: normal !important;
	text-align: center !important;
}


/* ==========================================================
   NARROW PRODUCT PANELS AND TABLETS
   Stack both columns before they become cramped
   ========================================================== */

@media screen and (max-width: 1050px) {

	body.single-product
	.summary
	form.variations_form.cart {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.single_variation_wrap {
		width: 100% !important;
		max-width: none !important;
	}
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media screen and (max-width: 600px) {

	body.single-product
	.summary
	form.variations_form.cart {
		display: block !important;

		padding: 18px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	table.variations {
		margin-bottom: 24px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	select[name^="attribute_"] {
		min-height: 60px !important;

		padding: 10px 52px 10px 18px !important;

		font-size: 17px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart {
		gap: 15px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart
	.quantity {
		height: 58px !important;
		min-height: 58px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.quantity button,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .minus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .plus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .qty-minus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .qty-plus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input.qty {
		height: 56px !important;
		min-height: 56px !important;
		max-height: 56px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.single_add_to_cart_button {
		min-height: 60px !important;

		font-size: 18px !important;
	}
}




/* ==========================================================
   JM VARIABLE PRODUCT FORM — FINAL LAYOUT RESET
   Fixes clipped quantity controls and narrow basket button
   Paste at the very bottom of the CSS file
   ========================================================== */

/* Reset the complete variable-product form */
body.single-product
.summary
form.variations_form.cart {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;

	margin: 0 0 24px !important;
	padding: 32px !important;

	overflow: visible !important;

	box-sizing: border-box !important;
}


/* Keep the variation selector and purchase controls aligned */
body.single-product
.summary
form.variations_form.cart
table.variations,
body.single-product
.summary
form.variations_form.cart
.single_variation_wrap {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 760px !important;

	margin-right: auto !important;
	margin-left: auto !important;

	box-sizing: border-box !important;
}


/* Space below the load-size selector */
body.single-product
.summary
form.variations_form.cart
table.variations {
	margin-top: 0 !important;
	margin-bottom: 30px !important;
	padding: 0 !important;
}


/* Reset variation table elements */
body.single-product
.summary
form.variations_form.cart
table.variations tbody,
body.single-product
.summary
form.variations_form.cart
table.variations tr,
body.single-product
.summary
form.variations_form.cart
table.variations th,
body.single-product
.summary
form.variations_form.cart
table.variations td {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	box-sizing: border-box !important;
}


/* Load-size label */
body.single-product
.summary
form.variations_form.cart
table.variations label {
	display: block !important;

	margin: 0 0 12px !important;
	padding: 0 !important;

	font-size: 18px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
}


/* Load-size dropdown */
body.single-product
.summary
form.variations_form.cart
select[name^="attribute_"] {
	display: block !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 68px !important;

	margin: 0 !important;
	padding: 12px 60px 12px 24px !important;

	box-sizing: border-box !important;

	border-radius: 18px !important;

	font-size: 20px !important;
	line-height: 1.25 !important;

	white-space: nowrap !important;
	text-overflow: clip !important;
}


/* Reset-link spacing */
body.single-product
.summary
form.variations_form.cart
.reset_variations {
	display: inline-flex !important;

	margin: 12px 0 0 !important;
	padding: 0 !important;
}


/* Variation result area */
body.single-product
.summary
form.variations_form.cart
.single_variation_wrap {
	clear: both !important;

	margin-top: 0 !important;
	padding: 0 !important;
}


/* Selected variation price */
body.single-product
.summary
form.variations_form.cart
.single_variation {
	display: block !important;

	width: 100% !important;
	max-width: 100% !important;

	margin: 0 0 20px !important;
	padding: 0 !important;
}


body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-price {
	display: block !important;

	width: 100% !important;

	margin: 0 0 18px !important;
	padding: 0 !important;
}


/* Purchase controls */
body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart,
body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart.variations_button {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 340px !important;

	margin: 0 !important;
	padding: 0 !important;

	gap: 16px !important;

	box-sizing: border-box !important;
}


/* Complete quantity selector */
body.single-product
.summary
form.variations_form.cart
.woocommerce-variation-add-to-cart
.quantity {
	position: relative !important;

	display: grid !important;
	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr)
		minmax(0, 1fr) !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 340px !important;

	height: 64px !important;
	min-height: 64px !important;
	max-height: 64px !important;

	margin: 0 !important;
	padding: 0 !important;

	overflow: hidden !important;

	flex: none !important;

	box-sizing: border-box !important;
}


/* Minus and plus buttons */
body.single-product
.summary
form.variations_form.cart
.quantity button,
body.single-product
.summary
form.variations_form.cart
.quantity .minus,
body.single-product
.summary
form.variations_form.cart
.quantity .plus,
body.single-product
.summary
form.variations_form.cart
.quantity .qty-minus,
body.single-product
.summary
form.variations_form.cart
.quantity .qty-plus {
	position: static !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;

	height: 62px !important;
	min-height: 62px !important;
	max-height: 62px !important;

	margin: 0 !important;
	padding: 0 !important;

	float: none !important;

	box-sizing: border-box !important;
}


/* Quantity number */
body.single-product
.summary
form.variations_form.cart
.quantity input.qty,
body.single-product
.summary
form.variations_form.cart
.quantity input[type="number"],
body.single-product
.summary
form.variations_form.cart
.quantity input.input-text {
	position: static !important;

	display: block !important;

	grid-column: auto !important;
	grid-row: auto !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;

	height: 62px !important;
	min-height: 62px !important;
	max-height: 62px !important;

	margin: 0 !important;
	padding: 0 5px !important;

	float: none !important;

	line-height: 62px !important;
	text-align: center !important;

	opacity: 1 !important;
	visibility: visible !important;

	box-sizing: border-box !important;
}


/* Add to basket button */
body.single-product
.summary
form.variations_form.cart
.single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-width: 0 !important;
	max-width: 340px !important;
	min-height: 64px !important;

	margin: 0 !important;
	padding: 14px 20px !important;

	box-sizing: border-box !important;

	font-size: 19px !important;
	line-height: 1.2 !important;
	text-align: center !important;
	white-space: normal !important;
}


/* ==========================================================
   TABLET AND MOBILE
   ========================================================== */

@media screen and (max-width: 780px) {

	body.single-product
	.summary
	form.variations_form.cart {
		padding: 22px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	table.variations,
	body.single-product
	.summary
	form.variations_form.cart
	.single_variation_wrap {
		max-width: none !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart,
	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart.variations_button {
		width: 100% !important;
		max-width: none !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart
	.quantity,
	body.single-product
	.summary
	form.variations_form.cart
	.single_add_to_cart_button {
		width: 100% !important;
		max-width: none !important;
	}
}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media screen and (max-width: 560px) {

	body.single-product
	.summary
	form.variations_form.cart {
		padding: 18px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	select[name^="attribute_"] {
		min-height: 60px !important;

		padding: 10px 52px 10px 18px !important;

		font-size: 17px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.woocommerce-variation-add-to-cart
	.quantity {
		height: 58px !important;
		min-height: 58px !important;
		max-height: 58px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.quantity button,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .minus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .plus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .qty-minus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity .qty-plus,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input.qty,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input[type="number"],
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input.input-text {
		height: 56px !important;
		min-height: 56px !important;
		max-height: 56px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.quantity input.qty,
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input[type="number"],
	body.single-product
	.summary
	form.variations_form.cart
	.quantity input.input-text {
		line-height: 56px !important;
	}

	body.single-product
	.summary
	form.variations_form.cart
	.single_add_to_cart_button {
		min-height: 60px !important;

		font-size: 18px !important;
	}
}






/* ==========================================================
   JM SINGLE PRODUCT — CONTINUE SHOPPING BUTTON
   ========================================================== */

body.single-product
.jm-single-product-continue-shopping {
	display: block;

	width: 100%;

	margin: 18px 0 24px;
	padding: 0;
}


body.single-product
.jm-single-product-continue-shopping__button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;

	width: 100%;
	min-height: 58px;

	margin: 0;
	padding: 13px 22px;

	background: #eef3e9;
	color: #176b2b;

	border: 1px solid #bfd0b5;
	border-radius: 13px;

	box-sizing: border-box;

	font-family: inherit;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: none;

	box-shadow: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


body.single-product
.jm-single-product-continue-shopping__button:hover,
body.single-product
.jm-single-product-continue-shopping__button:focus {
	background: #dfead7;
	color: #104f20;

	border-color: #a9c09b;

	text-decoration: none;

	transform: translateY(-1px);

	box-shadow: 0 6px 16px rgba(47, 89, 39, 0.12);

	outline: none;
}


body.single-product
.jm-single-product-continue-shopping__icon {
	flex: 0 0 auto;

	width: 21px;
	height: 21px;

	fill: currentColor;
}


/* Mobile */

@media screen and (max-width: 560px) {

	body.single-product
	.jm-single-product-continue-shopping {
		margin-top: 15px;
		margin-bottom: 20px;
	}

	body.single-product
	.jm-single-product-continue-shopping__button {
		min-height: 54px;

		padding: 12px 17px;

		font-size: 16px;
	}
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

	body.single-product
	.jm-single-product-continue-shopping__button {
		transition: none !important;
		transform: none !important;
	}
}






/* ==========================================================
   JM PRODUCT CARDS — MOBILE CONTENT VISIBILITY FIX
   Removes inherited equal-height spacing and ensures all
   product details appear directly beneath the image.
   ========================================================== */

@media screen and (max-width: 760px) {

	/* Allow every product card to size itself from its content */
	.jm-product-section .jm-product-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		align-items: start !important;
		grid-auto-rows: auto !important;
	}

	.jm-product-section .jm-product-card {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 !important;
		overflow: visible !important;
	}

	/* Keep the product image at a sensible mobile ratio */
	.jm-product-section .jm-product-card__image-link {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.jm-product-section .jm-product-card__image {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		aspect-ratio: 16 / 10 !important;
		overflow: hidden !important;
	}

	.jm-product-section .jm-product-card__image img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		max-height: none !important;
		aspect-ratio: 16 / 10 !important;
		object-fit: cover !important;
		object-position: centre !important;
	}

	/* Remove the flex height that is creating the large empty panel */
	.jm-product-section .jm-product-card__content {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 22px 20px 20px !important;
		overflow: visible !important;
	}

	.jm-product-section .jm-product-card__main {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		flex: none !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	/* Ensure all of the product information remains visible */
	.jm-product-section .jm-product-card__title,
	.jm-product-section .jm-product-card__price,
	.jm-product-section .jm-product-card__description,
	.jm-product-section .jm-product-card__availability,
	.jm-product-section .jm-product-card__actions {
		display: block !important;
		position: static !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	.jm-product-section .jm-product-card__title {
		margin: 0 0 10px !important;
		font-size: 23px !important;
		line-height: 1.2 !important;
	}

	.jm-product-section .jm-product-card__price {
		margin: 0 0 15px !important;
		font-size: 22px !important;
		line-height: 1.25 !important;
	}

	.jm-product-section .jm-product-card__description {
		margin: 0 0 17px !important;
		font-size: 15px !important;
		line-height: 1.55 !important;
	}

	/* Stop the stock row being pushed to the bottom of a tall card */
	.jm-product-section .jm-product-card__availability {
		margin: 0 0 18px !important;
		padding: 0 !important;
	}

	/* Product controls must follow directly after the product details */
	.jm-product-section .jm-product-card__actions {
		display: flex !important;
		flex-direction: column !important;
		gap: 10px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.jm-product-section .jm-product-card__cart {
		display: grid !important;
		grid-template-columns: 116px minmax(0, 1fr) !important;
		gap: 10px !important;
		align-items: end !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.jm-product-section .jm-product-card__details,
	.jm-product-section .jm-product-card__add,
	.jm-product-section .jm-product-card__add--options {
		display: inline-flex !important;
		position: static !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;
		min-height: 48px !important;
		margin: 0 !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	/* Variable products must show their Select options button */
	.jm-product-section .jm-product-card__add--options {
		align-items: centre !important;
		justify-content: centre !important;
		padding: 12px 16px !important;
	}
}

/* ==========================================================
   VERY SMALL MOBILE PHONES
   ========================================================== */

@media screen and (max-width: 430px) {

	.jm-product-section .jm-product-card__content {
		padding: 18px 16px !important;
	}

	.jm-product-section .jm-product-card__cart {
		grid-template-columns: 1fr !important;
	}

	.jm-product-section .jm-product-card__quantity {
		width: 100% !important;
		min-width: 0 !important;
	}

	.jm-product-section .jm-quantity-control {
		grid-template-columns: 48px minmax(60px, 1fr) 48px !important;
		width: 100% !important;
	}

	.jm-product-section .jm-quantity-control .jm-quantity-input {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
	}

	.jm-product-section .jm-product-card__add,
	.jm-product-section .jm-product-card__details,
	.jm-product-section .jm-product-card__add--options {
		width: 100% !important;
		min-height: 50px !important;
	}
}







/* ==========================================================
   JM COVERFLOW GALLERY
   Version: 1.3.0
   Shortcode: [jm_coverflow]
   Fully scoped beneath .jmcf
   ========================================================== */

.jmcf,
.jmcf * {
    box-sizing: border-box;
}

.jmcf {
    --jmcf-accent: #bad995;
    --jmcf-accent-strong: #93c76b;
    --jmcf-green: #107e1b;
    --jmcf-ink: #102016;
    --jmcf-ink-soft: #33493a;
    --jmcf-cream: #f6f7f2;
    --jmcf-white: #ffffff;
    --jmcf-dark: #0a120d;
    --jmcf-dark-soft: #132019;
    --jmcf-line: rgba(186, 217, 149, 0.34);
    --jmcf-shadow: 0 30px 80px rgba(0, 0, 0, 0.30);

    position: relative;
    width: 100%;
    max-width: 100%;
    color: var(--jmcf-white);
    font-family: inherit;
    isolation: isolate;
}

.jmcf .jmcf__shell {
    position: relative;
    width: min(100%, 1480px);
    margin: 0 auto;
    padding: clamp(38px, 6vw, 82px) clamp(16px, 4vw, 64px) clamp(28px, 4.5vw, 60px);
    overflow: hidden;
    border: 1px solid rgba(63, 99, 65, 0.28);
    border-radius: 0;
    background:
        linear-gradient(
            to bottom,
            rgba(26, 56, 34, 0.16) 0%,
            rgba(26, 56, 34, 0.04) 34%,
            rgba(26, 56, 34, 0.15) 100%
        ),
        linear-gradient(
            to right,
            #5f815f 0%,
            #7fa477 8%,
            #9dbc8b 18%,
            #b3d198 30%,
            #c3dda8 42%,
            #cbe4b1 50%,
            #c3dda8 58%,
            #b3d198 70%,
            #9dbc8b 82%,
            #7fa477 92%,
            #5f815f 100%
        );
    box-shadow: 0 24px 70px rgba(43, 71, 48, 0.22);
}

.jmcf .jmcf__shell::before,
.jmcf .jmcf__shell::after {
    display: none !important;
}

.jmcf .jmcf__intro {
    position: relative;
    z-index: 3;
    max-width: 760px;
    margin: 0 auto clamp(22px, 3vw, 38px);
    text-align: center;
}

.jmcf .jmcf__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin: 0 0 12px;
    padding: 6px 13px;
    border: 1px solid rgba(186, 217, 149, 0.36);
    border-radius: 999px;
    color: var(--jmcf-accent);
    background: rgba(186, 217, 149, 0.08);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.jmcf .jmcf__heading {
    margin: 0;
    color: var(--jmcf-white);
    text-shadow: 0 3px 12px rgba(33, 61, 38, 0.36);
    font-size: clamp(32px, 5vw, 66px);
    font-weight: 750;
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.jmcf .jmcf__lead {
    max-width: 650px;
    margin: 18px auto 0;
    color: rgba(255, 255, 255, 0.94);
    text-shadow: 0 2px 9px rgba(33, 61, 38, 0.34);
    font-size: clamp(15px, 1.6vw, 19px);
    line-height: 1.62;
}

.jmcf .jmcf__viewport {
    position: relative;
    z-index: 2;
    width: 100%;
    height: clamp(480px, 53vw, 650px);
    min-height: 480px;
    overflow: hidden;
    perspective: 1500px;
    perspective-origin: 50% 48%;
    outline: none;
    touch-action: pan-y;
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
}

.jmcf .jmcf__viewport.is-dragging {
    cursor: grabbing;
}

.jmcf .jmcf__track {
    position: absolute;
    inset: 0;
    transform-style: preserve-3d;
    transition: opacity 220ms ease;
}

.jmcf.jmcf--pending .jmcf__track {
    opacity: 0;
}

.jmcf.jmcf--ready .jmcf__track {
    opacity: 1;
}

.jmcf .jmcf__card {
    position: absolute;
    top: 49%;
    left: 50%;
    display: block;
    width: clamp(270px, 34vw, 430px);
    height: clamp(410px, 44vw, 550px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: clamp(20px, 2vw, 30px);
    color: var(--jmcf-ink);
    background: var(--jmcf-white);
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.32);
    transform-origin: center center;
    transform-style: preserve-3d;
    transition:
        transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1),
        opacity 360ms ease,
        filter 420ms ease,
        border-color 320ms ease,
        box-shadow 420ms ease;
    cursor: default;
}

.jmcf .jmcf__card-select {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: inherit;
    color: inherit;
    background: transparent;
    box-shadow: none;
    text-align: left;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf .jmcf__card[data-jmcf-position="active"] {
    border-color: rgba(186, 217, 149, 0.92);
    box-shadow:
        0 34px 90px rgba(0, 0, 0, 0.48),
        0 0 0 1px rgba(186, 217, 149, 0.32),
        0 0 42px rgba(186, 217, 149, 0.16);
    filter: none;
}

.jmcf .jmcf__card[data-jmcf-position="previous"],
.jmcf .jmcf__card[data-jmcf-position="next"] {
    filter: brightness(0.82) saturate(0.92) contrast(1.02);
    pointer-events: auto !important;
}

.jmcf .jmcf__card-media {
    position: relative;
    display: block;
    min-height: 0;
    overflow: hidden;
    background: #18251c;
}

.jmcf .jmcf__card-media > img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    transform: scale(1.012);
    transition: transform 900ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.jmcf .jmcf__card[data-jmcf-position="active"] .jmcf__card-media > img {
    transform: scale(1.045);
}

.jmcf .jmcf__card-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(5, 14, 8, 0.44), transparent 46%),
        linear-gradient(125deg, rgba(255, 255, 255, 0.10), transparent 30%);
    pointer-events: none;
}

.jmcf .jmcf__card-number {
    display: none !important;
}

.jmcf .jmcf__card-copy {
    position: relative;
    display: grid;
    align-content: start;
    gap: 7px;
    min-height: 126px;
    padding: 20px 22px 50px;
    text-align: left;
    background:
        linear-gradient(135deg, rgba(186, 217, 149, 0.16), transparent 50%),
        var(--jmcf-white);
}

.jmcf .jmcf__card-title {
    display: block;
    color: var(--jmcf-ink);
    font-size: clamp(18px, 1.8vw, 24px);
    font-weight: 780;
    line-height: 1.1;
    letter-spacing: -0.025em;
}

.jmcf .jmcf__card-meta {
    display: block;
    overflow: hidden;
    color: var(--jmcf-ink-soft);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jmcf .jmcf__card-action {
    position: absolute;
    right: auto;
    bottom: 17px;
    left: 22px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-height: 28px;
    margin: 0;
    padding: 4px 0;
    border: 0;
    border-radius: 0;
    color: var(--jmcf-green);
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf .jmcf__card-action::after {
    position: absolute;
    right: -7px;
    bottom: -5px;
    left: -7px;
    height: 38px;
    content: "";
}

.jmcf .jmcf__control,
.jmcf .jmcf__icon-button,
.jmcf .jmcf__view-button,
.jmcf .jmcf__dot,
.jmcf .jmcf__thumbnail {
    font: inherit;
}

.jmcf .jmcf__control {
    position: absolute;
    top: 50%;
    z-index: 160;
    display: grid;
    place-items: center;
    width: clamp(52px, 5vw, 66px);
    height: clamp(52px, 5vw, 66px);
    margin: 0;
    padding: 0;
    border: 1px solid rgba(186, 217, 149, 0.48);
    border-radius: 50%;
    color: var(--jmcf-white);
    background: rgba(8, 18, 12, 0.74);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.30);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translateY(-50%);
    transition:
        transform 220ms ease,
        background-color 220ms ease,
        border-color 220ms ease;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf .jmcf__control--previous {
    left: clamp(4px, 2vw, 26px);
}

.jmcf .jmcf__control--next {
    right: clamp(4px, 2vw, 26px);
}

.jmcf .jmcf__control svg,
.jmcf .jmcf__icon-button svg {
    display: block;
    width: 27px;
    height: 27px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.jmcf .jmcf__control-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
}

.jmcf .jmcf__navigation {
    position: relative;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 30px;
    margin: 2px auto clamp(20px, 3vw, 34px);
}

.jmcf .jmcf__dot {
    position: relative;
    display: block;
    width: 11px;
    height: 11px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.54);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
    box-shadow: none;
    transition:
        width 260ms ease,
        border-color 260ms ease,
        background-color 260ms ease;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf .jmcf__dot.is-current {
    width: 34px;
    border-color: var(--jmcf-accent);
    border-radius: 999px;
    background: var(--jmcf-accent);
}

.jmcf .jmcf__project-info {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(22px, 4vw, 58px);
    max-width: 1060px;
    margin: 0 auto;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid rgba(186, 217, 149, 0.22);
    border-radius: clamp(20px, 2.2vw, 30px);
    background:
        linear-gradient(130deg, rgba(186, 217, 149, 0.11), rgba(255, 255, 255, 0.025)),
        rgba(255, 255, 255, 0.035);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.jmcf .jmcf__project-copy {
    min-width: 0;
}

.jmcf .jmcf__project-meta {
    margin: 0 0 8px;
    color: var(--jmcf-accent);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.jmcf .jmcf__project-title {
    margin: 0;
    color: var(--jmcf-white);
    font-size: clamp(25px, 3vw, 40px);
    font-weight: 750;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.jmcf .jmcf__project-description {
    max-width: 720px;
    margin: 13px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: clamp(14px, 1.35vw, 17px);
    line-height: 1.62;
}

.jmcf .jmcf__view-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    min-height: 54px;
    margin: 0;
    padding: 14px 20px 14px 22px;
    border: 1px solid var(--jmcf-accent);
    border-radius: 14px;
    color: var(--jmcf-ink);
    background: var(--jmcf-accent);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
    white-space: nowrap;
    transition:
        transform 220ms ease,
        background-color 220ms ease,
        box-shadow 220ms ease;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf .jmcf__view-button svg {
    display: block;
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.jmcf .jmcf__hint,
.jmcf .jmcf__noscript {
    position: relative;
    z-index: 4;
    margin: 17px auto 0;
    color: rgba(255, 255, 255, 0.50);
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
}

.jmcf .jmcf__live {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.jmcf .jmcf__card-select:focus-visible,
.jmcf .jmcf__card-action:focus-visible,
.jmcf .jmcf__control:focus-visible,
.jmcf .jmcf__view-button:focus-visible,
.jmcf .jmcf__dot:focus-visible,
.jmcf .jmcf__icon-button:focus-visible,
.jmcf .jmcf__thumbnail:focus-visible,
.jmcf .jmcf__viewport:focus-visible {
    outline: 3px solid var(--jmcf-white);
    outline-offset: 4px;
    box-shadow: 0 0 0 3px var(--jmcf-green);
}

@media (hover: hover) {
    .jmcf .jmcf__control:hover {
        border-color: var(--jmcf-accent);
        background: rgba(16, 126, 27, 0.94);
        transform: translateY(-50%) scale(1.06);
    }

    .jmcf .jmcf__view-button:hover {
        background: #d0e8b3;
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
        transform: translateY(-2px);
    }

    .jmcf .jmcf__card-action:hover {
        color: #075f12;
        text-decoration-thickness: 2px;
    }

    .jmcf .jmcf__thumbnail:hover {
        border-color: rgba(186, 217, 149, 0.72);
        transform: translateY(-2px);
    }
}

/* ==========================================================
   PROJECT GALLERY MODAL
   The modal is moved to document.body by JavaScript so Themify
   rows cannot crop or restrict it.
   ========================================================== */

.jmcf.jmcf__modal,
.jmcf.jmcf__lightbox {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    width: 100vw;
    height: 100dvh;
    margin: 0;
    background: rgba(37, 69, 45, 0.62);
    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
    opacity: 0;
    transition: opacity 220ms ease;
}

.jmcf.jmcf__modal[hidden],
.jmcf.jmcf__lightbox[hidden] {
    display: none !important;
}

.jmcf.jmcf__modal.is-open,
.jmcf.jmcf__lightbox.is-open {
    opacity: 1;
}

.jmcf.jmcf__modal {
    display: grid;
    place-items: center;
    padding: clamp(12px, 3vw, 38px);
}

.jmcf.jmcf__modal .jmcf__modal-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(1180px, 100%);
    max-height: calc(100dvh - clamp(24px, 6vw, 76px));
    overflow: hidden;
    border: 1px solid rgba(59, 99, 60, 0.56);
    border-radius: clamp(20px, 2.5vw, 34px);
    color: var(--jmcf-ink);
    background:
        linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0.36) 0%,
            rgba(255, 255, 255, 0.12) 30%,
            rgba(255, 255, 255, 0.04) 100%
        ),
        linear-gradient(
            to right,
            #95b983 0%,
            #b3d198 22%,
            #c9e2af 50%,
            #b3d198 78%,
            #95b983 100%
        );
    box-shadow: 0 34px 100px rgba(31, 55, 35, 0.38);
    transform: translateY(16px) scale(0.985);
    transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.jmcf.jmcf__modal.is-open .jmcf__modal-panel {
    transform: translateY(0) scale(1);
}

.jmcf.jmcf__modal .jmcf__modal-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 22px;
    padding: clamp(20px, 3vw, 34px);
    border-bottom: 1px solid rgba(45, 83, 49, 0.28);
    background: rgba(255, 255, 255, 0.12);
}

.jmcf.jmcf__modal .jmcf__modal-heading-group {
    min-width: 0;
}

.jmcf.jmcf__modal .jmcf__modal-meta {
    margin: 0 0 7px;
    color: #315f35;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.45;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.jmcf.jmcf__modal .jmcf__modal-title {
    margin: 0;
    color: #102016;
    font-size: clamp(25px, 3.2vw, 44px);
    font-weight: 760;
    line-height: 1.04;
    letter-spacing: -0.035em;
}

.jmcf.jmcf__modal .jmcf__modal-description {
    max-width: 790px;
    margin: 11px 0 0;
    color: rgba(16, 32, 22, 0.78);
    font-size: clamp(13px, 1.2vw, 16px);
    line-height: 1.58;
}

.jmcf .jmcf__icon-button {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    min-width: 48px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(186, 217, 149, 0.48);
    border-radius: 50%;
    color: var(--jmcf-white);
    background: rgba(6, 15, 9, 0.78);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.26);
    transition:
        transform 200ms ease,
        border-color 200ms ease,
        background-color 200ms ease;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf.jmcf__modal .jmcf__gallery-body {
    display: grid;
    grid-template-rows: minmax(260px, 1fr) auto;
    gap: clamp(14px, 2vw, 22px);
    min-height: 0;
    padding: clamp(14px, 2.2vw, 26px);
    overflow: auto;
    overscroll-behavior: contain;
    background:
        linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0.08),
            rgba(93, 130, 83, 0.10)
        );
}

.jmcf.jmcf__modal .jmcf__main-stage {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: clamp(300px, 55dvh, 650px);
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(45, 83, 49, 0.32);
    border-radius: clamp(16px, 2vw, 24px);
    background:
        radial-gradient(
            ellipse at center,
            rgba(255, 255, 255, 0.72),
            rgba(225, 238, 214, 0.82)
        ),
        #e6f0df;
    box-shadow: 0 16px 36px rgba(52, 82, 55, 0.18);
}

.jmcf.jmcf__modal .jmcf__main-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.jmcf.jmcf__modal .jmcf__modal-close,
.jmcf.jmcf__modal .jmcf__zoom-button {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.66);
    background: rgba(28, 67, 36, 0.92);
}

.jmcf.jmcf__modal .jmcf__zoom-button {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 3;
}

.jmcf.jmcf__modal .jmcf__thumbnails {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
    gap: clamp(8px, 1.2vw, 12px);
    width: 100%;
}

.jmcf.jmcf__modal .jmcf__thumbnail {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 0.78;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 3px solid transparent;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.48);
    box-shadow: 0 8px 20px rgba(46, 78, 49, 0.18);
    transition:
        border-color 200ms ease,
        transform 200ms ease,
        opacity 200ms ease;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.jmcf.jmcf__modal .jmcf__thumbnail > img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.jmcf.jmcf__modal .jmcf__thumbnail:not(.is-selected) {
    opacity: 0.68;
}

.jmcf.jmcf__modal .jmcf__thumbnail.is-selected {
    border: 3px solid #bad995;
    box-shadow:
        0 0 0 2px #315f35,
        0 10px 24px rgba(46, 78, 49, 0.22);
    opacity: 1;
}

/* ==========================================================
   FULL-VIEWPORT IMAGE LIGHTBOX
   ========================================================== */

.jmcf.jmcf__lightbox {
    z-index: 2147483100;
    display: grid;
    place-items: center;
    padding: clamp(12px, 3vw, 38px);
    background: rgba(1, 5, 3, 0.94);
}

.jmcf.jmcf__lightbox .jmcf__lightbox-figure {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 12px;
    width: 100%;
    height: 100%;
    margin: 0;
    min-width: 0;
    min-height: 0;
}

.jmcf.jmcf__lightbox .jmcf__lightbox-image {
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    object-fit: contain;
}

.jmcf.jmcf__lightbox .jmcf__lightbox-caption {
    max-width: 900px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.76);
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
}

.jmcf.jmcf__lightbox .jmcf__lightbox-close {
    position: absolute;
    top: clamp(14px, 2.4vw, 28px);
    right: clamp(14px, 2.4vw, 28px);
    z-index: 4;
    background: rgba(6, 15, 9, 0.88);
}

@media (hover: hover) {
    .jmcf .jmcf__icon-button:hover {
        border-color: var(--jmcf-accent);
        background: var(--jmcf-green);
        transform: scale(1.06);
    }
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 980px) {
    .jmcf .jmcf__shell {
        padding-right: clamp(14px, 3vw, 28px);
        padding-left: clamp(14px, 3vw, 28px);
    }

    .jmcf .jmcf__viewport {
        height: clamp(500px, 68vw, 610px);
    }

    .jmcf .jmcf__card {
        width: clamp(280px, 48vw, 390px);
        height: clamp(430px, 58vw, 520px);
    }

    .jmcf .jmcf__project-info {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .jmcf .jmcf__view-button {
        width: 100%;
        white-space: normal;
    }

    .jmcf.jmcf__modal .jmcf__main-stage {
        height: clamp(300px, 51dvh, 580px);
    }
}

/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 680px) {
    .jmcf .jmcf__shell {
        padding-top: 34px;
        padding-bottom: 28px;
        border-radius: 0;
        background:
            linear-gradient(
                to bottom,
                rgba(26, 56, 34, 0.13) 0%,
                rgba(26, 56, 34, 0.02) 34%,
                rgba(26, 56, 34, 0.12) 100%
            ),
            linear-gradient(
                to right,
                #759873 0%,
                #9bbb89 10%,
                #bad69f 24%,
                #cbe4b1 40%,
                #d1e8ba 50%,
                #cbe4b1 60%,
                #bad69f 76%,
                #9bbb89 90%,
                #759873 100%
            );
    }

    .jmcf .jmcf__intro {
        margin-bottom: 12px;
    }

    .jmcf .jmcf__heading {
        font-size: clamp(32px, 10vw, 46px);
        line-height: 1;
    }

    .jmcf .jmcf__lead {
        margin-top: 14px;
        font-size: 15px;
        line-height: 1.55;
    }

    .jmcf .jmcf__viewport {
        height: 530px;
        min-height: 530px;
        perspective: 1100px;
        perspective-origin: 50% 44%;
    }

    .jmcf .jmcf__card {
        top: 45%;
        width: min(78vw, 300px);
        height: 410px;
        border-radius: 21px;
    }

    .jmcf .jmcf__card-copy {
        min-height: 118px;
        padding: 17px 18px 47px;
    }

    .jmcf .jmcf__card-action {
        bottom: 15px;
        left: 18px;
    }

    .jmcf .jmcf__card-title {
        font-size: 19px;
    }

    .jmcf .jmcf__card-meta {
        font-size: 12px;
    }

    .jmcf .jmcf__control {
        top: auto;
        bottom: 14px;
        width: 50px;
        height: 50px;
        transform: none;
    }

    .jmcf .jmcf__control--previous {
        right: auto;
        left: calc(50% - 58px);
    }

    .jmcf .jmcf__control--next {
        right: calc(50% - 58px);
        left: auto;
    }

    .jmcf .jmcf__control svg {
        width: 24px;
        height: 24px;
    }

    .jmcf .jmcf__navigation {
        margin-top: -2px;
        margin-bottom: 20px;
    }

    .jmcf .jmcf__project-info {
        padding: 21px 18px;
        border-radius: 20px;
    }

    .jmcf .jmcf__project-meta {
        font-size: 10px;
        letter-spacing: 0.08em;
    }

    .jmcf .jmcf__project-title {
        font-size: 27px;
    }

    .jmcf .jmcf__project-description {
        font-size: 14px;
        line-height: 1.55;
    }

    .jmcf .jmcf__hint {
        max-width: 300px;
        font-size: 11px;
    }

    .jmcf.jmcf__modal {
        place-items: end center;
        padding: 10px;
    }

    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: 100%;
        max-height: calc(100dvh - 20px);
        border-radius: 22px;
    }

    .jmcf.jmcf__modal .jmcf__modal-header {
        gap: 14px;
        padding: 18px;
    }

    .jmcf.jmcf__modal .jmcf__modal-title {
        padding-right: 2px;
        font-size: 27px;
    }

    .jmcf.jmcf__modal .jmcf__modal-description {
        font-size: 13px;
        line-height: 1.5;
    }

    .jmcf .jmcf__icon-button {
        width: 44px;
        height: 44px;
        min-width: 44px;
    }

    .jmcf .jmcf__icon-button svg {
        width: 24px;
        height: 24px;
    }

    .jmcf.jmcf__modal .jmcf__gallery-body {
        grid-template-rows: minmax(230px, 1fr) auto;
        gap: 12px;
        padding: 12px;
    }

    .jmcf.jmcf__modal .jmcf__main-stage {
        height: clamp(260px, 43dvh, 430px);
        border-radius: 16px;
    }

    .jmcf.jmcf__modal .jmcf__zoom-button {
        top: 10px;
        right: 10px;
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 7px;
    }

    .jmcf.jmcf__modal .jmcf__thumbnail {
        border-radius: 8px;
    }

    .jmcf.jmcf__lightbox {
        padding: 12px;
    }

    .jmcf.jmcf__lightbox .jmcf__lightbox-caption {
        padding: 0 42px;
        font-size: 12px;
    }
}

@media (max-width: 390px) {
    .jmcf .jmcf__viewport {
        height: 505px;
        min-height: 505px;
    }

    .jmcf .jmcf__card {
        width: min(80vw, 282px);
        height: 392px;
    }

    .jmcf .jmcf__project-title {
        font-size: 25px;
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .jmcf *,
    .jmcf *::before,
    .jmcf *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}








/* ==========================================================
   JM COVERFLOW – IMPROVE SIDE CARD AND BUTTON VISIBILITY
   ========================================================== */

/* Keep the information area bright and readable */
.jmcf .jmcf__card-copy {
    background: #ffffff !important;
    opacity: 1 !important;
}

/* Make side-card text clearer */
.jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-copy,
.jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-copy {
    background: rgba(255, 255, 255, 0.96) !important;
}

/* Stronger project titles */
.jmcf .jmcf__card-title {
    color: #102016 !important;
    opacity: 1 !important;
}

/* Stronger project details */
.jmcf .jmcf__card-meta {
    color: #33493a !important;
    opacity: 1 !important;
}

/* Make View Project look like a proper visible button */
.jmcf .jmcf__card-action,
.jmcf .jmcf__card-view-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    width: max-content;
    min-height: 40px;

    margin-top: 8px;
    padding: 10px 15px;

    border: 2px solid #107e1b !important;
    border-radius: 7px;

    color: #ffffff !important;
    background: #107e1b !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0.08em;
    text-decoration: none !important;
    text-transform: uppercase;

    opacity: 1 !important;
    box-shadow: 0 6px 16px rgba(16, 126, 27, 0.22);
}

/* Keep buttons visible on angled side cards */
.jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-action,
.jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-action,
.jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-view-button,
.jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-view-button {
    color: #ffffff !important;
    background: #107e1b !important;
    border-color: #107e1b !important;
    opacity: 1 !important;
}

/* Clear hover state */
@media (hover: hover) {
    .jmcf .jmcf__card-action:hover,
    .jmcf .jmcf__card-view-button:hover {
        color: #102016 !important;
        background: #bad995 !important;
        border-color: #bad995 !important;
        transform: translateY(-1px);
    }
}






/* ==========================================================
   JM PROJECT GALLERY – FIXED RESPONSIVE 10:13 RATIO
   Keeps the gallery portrait-shaped on every screen
   ========================================================== */

.jmcf.jmcf__modal {
    display: grid !important;
    place-items: center !important;

    width: 100vw !important;
    height: 100dvh !important;

    padding: 12px !important;
    overflow: auto !important;
}


/* ==========================================================
   JM PROJECT GALLERY – RESPONSIVE FIXED-RATIO PANEL
   Keeps the portrait panel shape while allowing the image,
   header and thumbnails to resize correctly on small screens
   ========================================================== */

.jmcf.jmcf__modal {
    display: grid !important;
    place-items: center !important;

    width: 100vw !important;
    height: 100dvh !important;

    padding: clamp(6px, 1.5vw, 18px) !important;

    overflow: hidden !important;
}


/* ==========================================================
   GALLERY PANEL
   Fixed 10:13 ratio without exceeding the viewport
   ========================================================== */

.jmcf.jmcf__modal .jmcf__modal-panel {
    display: grid !important;

    grid-template-rows:
        auto
        minmax(0, 1fr) !important;

    width: min(
        calc(100vw - 20px),
        calc((100dvh - 20px) * 0.76923),
        900px
    ) !important;

    height: auto !important;

    aspect-ratio: 10 / 13 !important;

    max-width: 900px !important;
    max-height: calc(100dvh - 20px) !important;

    margin: auto !important;

    overflow: hidden !important;

    border-radius: clamp(22px, 3vw, 40px) !important;
}


/* ==========================================================
   HEADER
   ========================================================== */

.jmcf.jmcf__modal .jmcf__modal-header {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        auto !important;

    align-items: start !important;

    gap: clamp(12px, 2vw, 24px) !important;

    padding:
        clamp(16px, 2.4vw, 30px)
        clamp(16px, 2.8vw, 34px) !important;

    flex-shrink: 0 !important;
}

.jmcf.jmcf__modal .jmcf__modal-heading-group {
    min-width: 0 !important;
}

.jmcf.jmcf__modal .jmcf__modal-meta {
    margin-bottom: clamp(5px, 1vw, 9px) !important;

    font-size: clamp(10px, 1.2vw, 14px) !important;
    line-height: 1.35 !important;
}

.jmcf.jmcf__modal .jmcf__modal-title {
    margin: 0 !important;

    font-size: clamp(24px, 4vw, 48px) !important;
    line-height: 1.04 !important;

    overflow-wrap: anywhere !important;
}

.jmcf.jmcf__modal .jmcf__modal-description {
    display: -webkit-box !important;

    margin-top: clamp(8px, 1.4vw, 14px) !important;

    overflow: hidden !important;

    font-size: clamp(13px, 1.5vw, 18px) !important;
    line-height: 1.5 !important;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}


/* ==========================================================
   GALLERY CONTENT
   Fills all remaining panel space
   ========================================================== */

.jmcf.jmcf__modal .jmcf__gallery-body {
    display: grid !important;

    grid-template-rows:
        minmax(0, 1fr)
        auto !important;

    gap: clamp(8px, 1.4vw, 16px) !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 0 !important;
    min-height: 0 !important;

    padding:
        clamp(10px, 1.8vw, 22px) !important;

    overflow: hidden !important;
}


/* ==========================================================
   MAIN IMAGE AREA
   Uses all remaining height and always shows the complete image
   ========================================================== */

.jmcf.jmcf__modal .jmcf__main-stage {
    position: relative !important;

    display: grid !important;
    place-items: center !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 0 !important;
    min-height: 0 !important;

    aspect-ratio: auto !important;

    overflow: hidden !important;

    border-radius: clamp(14px, 2vw, 24px) !important;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.25),
            rgba(186, 217, 149, 0.2)
        ) !important;
}

.jmcf.jmcf__modal .jmcf__main-image {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: 100% !important;
    max-height: 100% !important;

    object-fit: contain !important;
    object-position: center center !important;
}


/* ==========================================================
   THUMBNAILS
   Desktop: responsive grid
   Small screens: single scrollable row
   ========================================================== */

.jmcf.jmcf__modal .jmcf__thumbnails {
    display: grid !important;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        ) !important;

    gap: clamp(7px, 1vw, 12px) !important;

    width: 100% !important;
    min-width: 0 !important;

    max-height: clamp(94px, 17dvh, 170px) !important;

    padding: 1px !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    align-content: start !important;

    scrollbar-width: thin;
    overscroll-behavior: contain;
}

.jmcf.jmcf__modal .jmcf__thumbnail {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    min-width: 0 !important;

    aspect-ratio: 4 / 3 !important;

    flex-shrink: 0 !important;
}

.jmcf.jmcf__modal .jmcf__thumbnail img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
}


/* ==========================================================
   TABLET AND SMALLER LAPTOPS
   ========================================================== */

@media (max-width: 980px) {
    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: min(
            calc(100vw - 16px),
            calc((100dvh - 16px) * 0.76923)
        ) !important;

        max-height: calc(100dvh - 16px) !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-header {
        padding: 18px 20px !important;
    }

    .jmcf.jmcf__modal .jmcf__gallery-body {
        padding: 12px !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        grid-template-columns:
            repeat(
                4,
                minmax(0, 1fr)
            ) !important;

        max-height: 130px !important;
    }
}


/* ==========================================================
   MOBILE PORTRAIT
   Thumbnails become a single horizontal scrolling row
   ========================================================== */

@media (max-width: 680px) {
    .jmcf.jmcf__modal {
        padding: 5px !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: min(
            calc(100vw - 10px),
            calc((100dvh - 10px) * 0.76923)
        ) !important;

        max-height: calc(100dvh - 10px) !important;

        border-radius: 24px !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-header {
        gap: 10px !important;

        padding:
            15px
            14px !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-meta {
        font-size: 9px !important;
        line-height: 1.3 !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-title {
        font-size: clamp(22px, 6.5vw, 29px) !important;
        line-height: 1.04 !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-description {
        margin-top: 7px !important;

        font-size: 12px !important;
        line-height: 1.4 !important;

        -webkit-line-clamp: 2;
    }

    .jmcf.jmcf__modal .jmcf__modal-close {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
    }

    .jmcf.jmcf__modal .jmcf__gallery-body {
        gap: 8px !important;

        padding:
            9px
            9px
            11px !important;
    }

    .jmcf.jmcf__modal .jmcf__main-stage {
        width: 100% !important;
        height: 100% !important;

        min-height: 0 !important;

        aspect-ratio: auto !important;
    }

    .jmcf.jmcf__modal .jmcf__zoom-button {
        top: 8px !important;
        right: 8px !important;

        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        display: flex !important;

        grid-template-columns: none !important;

        gap: 7px !important;

        width: 100% !important;
        max-height: none !important;

        padding:
            1px
            1px
            5px !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .jmcf.jmcf__modal .jmcf__thumbnail {
        width: clamp(76px, 23vw, 108px) !important;
        min-width: clamp(76px, 23vw, 108px) !important;

        aspect-ratio: 4 / 3 !important;

        scroll-snap-align: start;
    }
}


/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */

@media (max-width: 390px) {
    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: min(
            calc(100vw - 6px),
            calc((100dvh - 6px) * 0.76923)
        ) !important;

        max-height: calc(100dvh - 6px) !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-header {
        padding:
            12px
            11px !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-title {
        font-size: clamp(20px, 6.4vw, 25px) !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-description {
        font-size: 11px !important;

        -webkit-line-clamp: 1;
    }

    .jmcf.jmcf__modal .jmcf__gallery-body {
        padding: 7px !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnail {
        width: 74px !important;
        min-width: 74px !important;
    }
}


/* ==========================================================
   SHORT LANDSCAPE SCREENS
   Compress the header and thumbnails to protect the main image
   ========================================================== */

@media (max-height: 680px) and (orientation: landscape) {
    .jmcf.jmcf__modal .jmcf__modal-header {
        padding:
            10px
            14px !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-meta {
        display: none !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-title {
        font-size: clamp(20px, 3.5vw, 30px) !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-description {
        display: none !important;
    }

    .jmcf.jmcf__modal .jmcf__gallery-body {
        padding: 8px !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        display: flex !important;

        gap: 6px !important;

        max-height: 76px !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnail {
        width: 92px !important;
        min-width: 92px !important;
    }
}






/* ==========================================================
   JM COVERFLOW – SOFT, VISIBLE LABEL AND NAVIGATION DOTS
   ========================================================== */

/* Recent Work label */
.jmcf .jmcf__eyebrow {
    color: #4f7049 !important;
    background: rgba(255, 255, 255, 0.32) !important;
    border: 1.5px solid rgba(79, 112, 73, 0.58) !important;

    box-shadow:
        0 4px 14px rgba(58, 87, 52, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;

    text-shadow: none !important;
    opacity: 1 !important;
}


/* Soft holder behind the navigation dots */
.jmcf .jmcf__navigation {
    width: max-content !important;
    max-width: calc(100% - 24px) !important;

    padding: 9px 14px !important;

    border: 1px solid rgba(79, 112, 73, 0.22) !important;
    border-radius: 999px !important;

    background: rgba(255, 255, 255, 0.18) !important;

    box-shadow:
        0 4px 15px rgba(58, 87, 52, 0.08) !important;
}


/* Unselected dots */
.jmcf .jmcf__dot {
    width: 13px !important;
    height: 13px !important;

    border: 2px solid #6f8d68 !important;
    background: rgba(255, 255, 255, 0.42) !important;

    opacity: 1 !important;
}


/* Selected dot */
.jmcf .jmcf__dot.is-current,
.jmcf .jmcf__dot[aria-current="true"] {
    width: 38px !important;

    border-color: #739864 !important;
    background: #a9ca8c !important;

    box-shadow:
        0 3px 10px rgba(73, 111, 64, 0.16) !important;
}


/* Gentle hover */
@media (hover: hover) {
    .jmcf .jmcf__dot:hover {
        border-color: #52754b !important;
        background: rgba(255, 255, 255, 0.62) !important;
    }

    .jmcf .jmcf__eyebrow:hover {
        color: #3f623b !important;
        border-color: rgba(63, 98, 59, 0.72) !important;
    }
}


/* Mobile contrast adjustment */
@media (max-width: 680px) {
    .jmcf .jmcf__eyebrow {
        color: #456840 !important;
        background: rgba(255, 255, 255, 0.38) !important;
        border-color: rgba(69, 104, 64, 0.62) !important;
    }

    .jmcf .jmcf__navigation {
        background: rgba(255, 255, 255, 0.24) !important;
    }

    .jmcf .jmcf__dot {
        border-color: #678460 !important;
    }

    .jmcf .jmcf__dot.is-current,
    .jmcf .jmcf__dot[aria-current="true"] {
        border-color: #6d925f !important;
        background: #a5c985 !important;
    }
}



/* ==========================================================
   JM GALLERY – ALWAYS HORIZONTAL THUMBNAILS
   Never wrap into a second row and never scroll vertically
   ========================================================== */

.jmcf.jmcf__modal .jmcf__gallery-body {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;

    gap: clamp(10px, 1.4vw, 16px) !important;

    min-width: 0 !important;
    min-height: 0 !important;

    overflow: hidden !important;
}


/* Main image remains completely separate from thumbnail row */
.jmcf.jmcf__modal .jmcf__main-stage {
    position: relative !important;
    z-index: 1 !important;

    min-width: 0 !important;
    min-height: 0 !important;

    overflow: hidden !important;
}


/* Force one horizontal scrolling thumbnail row everywhere */
.jmcf.jmcf__modal .jmcf__thumbnails {
    position: relative !important;
    z-index: 2 !important;

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;

    grid-template-columns: none !important;
    grid-auto-flow: unset !important;

    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 0 !important;
    max-height: none !important;

    gap: clamp(7px, 1vw, 12px) !important;

    margin: 0 !important;
    padding: 3px 2px 8px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    scroll-snap-type: x proximity;
    scroll-padding-inline: 2px;

    overscroll-behavior-x: contain;
    overscroll-behavior-y: none;

    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;

    touch-action: pan-x;
}


/* Each thumbnail keeps a fixed place in the horizontal row */
.jmcf.jmcf__modal .jmcf__thumbnail {
    position: relative !important;

    flex: 0 0 clamp(90px, 14vw, 155px) !important;

    width: clamp(90px, 14vw, 155px) !important;
    min-width: clamp(90px, 14vw, 155px) !important;
    max-width: clamp(90px, 14vw, 155px) !important;

    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    aspect-ratio: 4 / 3 !important;

    border: 3px solid rgba(255, 255, 255, 0.55) !important;

    overflow: hidden !important;

    scroll-snap-align: start;
    scroll-snap-stop: normal;

    transform: none !important;
}


/* Selected thumbnail remains the same size */
.jmcf.jmcf__modal .jmcf__thumbnail.is-selected,
.jmcf.jmcf__modal .jmcf__thumbnail[aria-pressed="true"] {
    border: 3px solid #315f3a !important;

    box-shadow:
        0 0 0 2px rgba(255, 255, 255, 0.58),
        0 5px 14px rgba(39, 84, 47, 0.18) !important;

    transform: none !important;
}


/* Stop hover movement causing overlap */
@media (hover: hover) {
    .jmcf.jmcf__modal .jmcf__thumbnail:hover {
        transform: none !important;
    }
}


/* Tablet thumbnail sizing */
@media (max-width: 980px) {
    .jmcf.jmcf__modal .jmcf__thumbnail {
        flex-basis: clamp(88px, 18vw, 130px) !important;

        width: clamp(88px, 18vw, 130px) !important;
        min-width: clamp(88px, 18vw, 130px) !important;
        max-width: clamp(88px, 18vw, 130px) !important;
    }
}


/* Mobile thumbnail sizing */
@media (max-width: 680px) {
    .jmcf.jmcf__modal .jmcf__thumbnails {
        gap: 7px !important;
        padding-bottom: 7px !important;
    }

    .jmcf.jmcf__modal .jmcf__thumbnail {
        flex-basis: clamp(76px, 24vw, 104px) !important;

        width: clamp(76px, 24vw, 104px) !important;
        min-width: clamp(76px, 24vw, 104px) !important;
        max-width: clamp(76px, 24vw, 104px) !important;
    }
}








/* ==========================================================
   JM COVERFLOW – STOP MOBILE TEXT AND BUTTON CLASH
   ========================================================== */

@media (max-width: 680px) {

    /* Give the text and button separate rows */
    .jmcf .jmcf__card-copy {
        display: grid !important;

        grid-template-rows:
            auto
            auto
            auto !important;

        align-content: start !important;
        align-items: start !important;

        min-height: 205px !important;

        padding:
            20px
            18px
            20px !important;
    }

    /* Project title */
    .jmcf .jmcf__card-title {
        position: static !important;

        width: 100% !important;

        margin: 0 0 12px !important;

        font-size: 20px !important;
        line-height: 1.15 !important;

        white-space: normal !important;
        overflow: visible !important;
    }

    /* Project details */
    .jmcf .jmcf__card-meta {
        position: static !important;

        display: -webkit-box !important;

        width: 100% !important;

        margin: 0 0 16px !important;

        overflow: hidden !important;

        font-size: 13px !important;
        line-height: 1.4 !important;

        white-space: normal !important;
        text-overflow: unset !important;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    /* Real View Project button */
    .jmcf .jmcf__card-view-button,
    .jmcf .jmcf__card-action {
        position: static !important;
        inset: auto !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        min-width: 172px !important;
        max-width: 210px !important;
        min-height: 48px !important;

        margin: 0 !important;
        padding: 13px 20px !important;

        align-self: start !important;

        line-height: 1.1 !important;

        transform: none !important;
    }
}


/* Extra protection for very narrow phones */
@media (max-width: 390px) {

    .jmcf .jmcf__card-copy {
        min-height: 215px !important;

        padding:
            18px
            16px
            18px !important;
    }

    .jmcf .jmcf__card-title {
        font-size: 18px !important;
    }

    .jmcf .jmcf__card-meta {
        font-size: 12px !important;
    }

    .jmcf .jmcf__card-view-button,
    .jmcf .jmcf__card-action {
        min-width: 160px !important;
        max-width: 190px !important;

        padding:
            12px
            17px !important;

        font-size: 13px !important;
    }
}







/* ==========================================================
   JM COVERFLOW – RESTORE VIEW PROJECT BUTTON ON SMALL SCREENS
   ========================================================== */

@media (max-width: 680px) {

    /* Give the card enough height for wrapped text and button */
    .jmcf .jmcf__card {
        height: 450px !important;
    }

    /* Keep the title and details inside the white lower panel */
    .jmcf .jmcf__card-copy {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;

        gap: 11px !important;

        min-height: 196px !important;

        /* Extra bottom padding reserves a clear button area */
        padding:
            20px
            18px
            82px !important;
    }

    .jmcf .jmcf__card-title {
        position: static !important;

        width: 100% !important;
        margin: 0 !important;

        font-size: 20px !important;
        line-height: 1.15 !important;

        white-space: normal !important;
        overflow: visible !important;
        text-overflow: unset !important;
    }

    .jmcf .jmcf__card-meta {
        position: static !important;

        display: -webkit-box !important;

        width: 100% !important;
        margin: 0 !important;

        overflow: hidden !important;

        font-size: 13px !important;
        line-height: 1.4 !important;

        white-space: normal !important;
        text-overflow: unset !important;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    /* Restore the real button above the full-card click layer */
    .jmcf .jmcf__card-action,
    .jmcf .jmcf__card-view-button {
        position: absolute !important;

        right: auto !important;
        bottom: 18px !important;
        left: 18px !important;

        z-index: 20 !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        min-width: 170px !important;
        max-width: calc(100% - 36px) !important;
        min-height: 48px !important;

        margin: 0 !important;
        padding: 13px 20px !important;

        color: #ffffff !important;
        background: #107e1b !important;
        border: 2px solid #107e1b !important;
        border-radius: 8px !important;

        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.1 !important;
        letter-spacing: 0.08em !important;
        text-decoration: none !important;
        text-transform: uppercase !important;

        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;

        transform: none !important;
    }
}


/* Extra protection for very narrow phones */
@media (max-width: 390px) {

    .jmcf .jmcf__card {
        height: 440px !important;
    }

    .jmcf .jmcf__card-copy {
        min-height: 200px !important;

        padding:
            18px
            16px
            78px !important;
    }

    .jmcf .jmcf__card-title {
        font-size: 18px !important;
    }

    .jmcf .jmcf__card-meta {
        font-size: 12px !important;
    }

    .jmcf .jmcf__card-action,
    .jmcf .jmcf__card-view-button {
        bottom: 16px !important;
        left: 16px !important;

        min-width: 158px !important;
        max-width: calc(100% - 32px) !important;

        padding: 12px 17px !important;

        font-size: 13px !important;
    }
}







/* ==========================================================
   JM PROJECT GALLERY – DARKER HEADER TEXT
   Improves contrast against the pale green background
   ========================================================== */

.jmcf.jmcf__modal .jmcf__modal-meta {
    color: #426b45 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.jmcf.jmcf__modal .jmcf__modal-title {
    color: #102a18 !important;
    text-shadow: none !important;
}

.jmcf.jmcf__modal .jmcf__modal-description {
    color: #405a45 !important;
    opacity: 1 !important;
}





/* ==========================================================
   JM PROJECT GALLERY – STRONGER DARK HEADER TEXT
   ========================================================== */

.jmcf.jmcf__modal .jmcf__modal-header .jmcf__modal-meta {
    color: #2f5a35 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.jmcf.jmcf__modal .jmcf__modal-header .jmcf__modal-title {
    color: #0d2415 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.jmcf.jmcf__modal .jmcf__modal-header .jmcf__modal-description {
    color: #314d37 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}






/* ==========================================================
   JM COVERFLOW – DARKEN PROJECT INFORMATION PANEL TEXT
   ========================================================== */

.jmcf .jmcf__project-info .jmcf__project-meta {
    color: #315f3a !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.jmcf .jmcf__project-info .jmcf__project-title {
    color: #102a18 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.jmcf .jmcf__project-info .jmcf__project-description {
    color: #38543e !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

/* Keep the button text strong and readable */
.jmcf .jmcf__project-info .jmcf__view-button {
    color: #102a18 !important;
}

/* Slightly stronger contrast on smaller screens */
@media (max-width: 680px) {
    .jmcf .jmcf__project-info .jmcf__project-meta {
        color: #285331 !important;
    }

    .jmcf .jmcf__project-info .jmcf__project-title {
        color: #0a2112 !important;
    }

    .jmcf .jmcf__project-info .jmcf__project-description {
        color: #304c36 !important;
    }
}








/* ==========================================================
   JM COVERFLOW – LIGHT GREEN BUTTON WITH BREATHING SPACE
   Applies on desktop, tablet and mobile
   ========================================================== */

.jmcf .jmcf__card-copy {
    position: relative !important;

    /* Reserves a protected area for the button */
    min-height: 190px !important;
    padding:
        22px
        24px
        86px !important;
}


/* Give the details clear breathing space */
.jmcf .jmcf__card-meta {
    margin: 0 !important;

    line-height: 1.45 !important;

    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}


/* Soft JM green View Project button */
.jmcf .jmcf__card-view-button,
.jmcf .jmcf__card-action {
    position: absolute !important;

    right: auto !important;
    bottom: 20px !important;
    left: 24px !important;

    z-index: 30 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 185px !important;
    max-width: calc(100% - 48px) !important;
    min-height: 48px !important;

    margin: 0 !important;
    padding: 13px 22px !important;

    border: 1px solid #a7ca83 !important;
    border-radius: 8px !important;

    color: #17321e !important;
    background: #bad995 !important;

    box-shadow:
        0 7px 18px rgba(61, 101, 57, 0.16) !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: 0.075em !important;
    text-decoration: none !important;
    text-transform: uppercase !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    transform: none !important;
}


/* Gentle rollover without becoming too dark */
@media (hover: hover) {
    .jmcf .jmcf__card-view-button:hover,
    .jmcf .jmcf__card-action:hover {
        color: #ffffff !important;
        background: #4f7b4c !important;
        border-color: #4f7b4c !important;

        box-shadow:
            0 9px 22px rgba(49, 95, 58, 0.24) !important;

        transform: translateY(-1px) !important;
    }
}


/* ==========================================================
   TABLET AND MOBILE
   ========================================================== */

@media (max-width: 680px) {
    .jmcf .jmcf__card-copy {
        min-height: 205px !important;

        padding:
            20px
            18px
            82px !important;
    }

    .jmcf .jmcf__card-meta {
        line-height: 1.42 !important;
    }

    .jmcf .jmcf__card-view-button,
    .jmcf .jmcf__card-action {
        bottom: 17px !important;
        left: 18px !important;

        min-width: 170px !important;
        max-width: calc(100% - 36px) !important;
        min-height: 48px !important;

        padding: 13px 20px !important;

        font-size: 13px !important;
    }
}


/* Very narrow phones */
@media (max-width: 390px) {
    .jmcf .jmcf__card-copy {
        min-height: 210px !important;

        padding:
            18px
            16px
            78px !important;
    }

    .jmcf .jmcf__card-view-button,
    .jmcf .jmcf__card-action {
        bottom: 15px !important;
        left: 16px !important;

        min-width: 158px !important;
        max-width: calc(100% - 32px) !important;

        padding: 12px 17px !important;
    }
}






/* ==========================================================
   JM COVERFLOW – MATCH SIDE CARD BUTTON COLOUR
   ========================================================== */

.jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-view-button,
.jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-view-button,
.jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-action,
.jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-action {
    color: #17321e !important;
    background: #bad995 !important;
    border-color: #a7ca83 !important;

    opacity: 1 !important;

    box-shadow:
        0 7px 18px rgba(61, 101, 57, 0.16) !important;
}

/* Matching hover colour on all cards */
@media (hover: hover) {
    .jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-view-button:hover,
    .jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-view-button:hover,
    .jmcf .jmcf__card[data-jmcf-position="previous"] .jmcf__card-action:hover,
    .jmcf .jmcf__card[data-jmcf-position="next"] .jmcf__card-action:hover {
        color: #ffffff !important;
        background: #4f7b4c !important;
        border-color: #4f7b4c !important;
    }
}







/* ==========================================================
   JM COVERFLOW – SLOWER, SMOOTHER USER SWIPE
   Version: 1.4.0
   ========================================================== */

.jmcf .jmcf__card {
    will-change: transform;

    transition:
        transform 900ms cubic-bezier(0.22, 1, 0.36, 1),
        opacity 480ms ease,
        filter 560ms ease,
        border-color 320ms ease,
        box-shadow 520ms ease !important;
}

/* Cards follow the finger or pointer directly while dragging */
.jmcf .jmcf__viewport.is-dragging .jmcf__card {
    transition: none !important;
}

/* Preserve reduced-motion accessibility */
@media (prefers-reduced-motion: reduce) {
    .jmcf .jmcf__card,
    .jmcf .jmcf__viewport.is-dragging .jmcf__card {
        transition-duration: 0.01ms !important;
    }
}






/* ==========================================================
   JM COVERFLOW – PROPER LEAF-SHAPED MOBILE NAVIGATION
   Replace the previous mobile navigation-button CSS
   ========================================================== */

@media (max-width: 680px) {

    .jmcf .jmcf__control {
        top: auto !important;
        bottom: 14px !important;

        width: 68px !important;
        height: 40px !important;
        min-width: 68px !important;
        min-height: 40px !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 1px solid rgba(171, 207, 129, 0.75) !important;
        border-radius: 0 !important;

        color: #ffffff !important;

        background:
            radial-gradient(
                ellipse at 38% 35%,
                rgba(186, 217, 149, 0.34) 0%,
                rgba(186, 217, 149, 0) 45%
            ),
            linear-gradient(
                145deg,
                #527f43 0%,
                #315f35 50%,
                #173b25 100%
            ) !important;

        box-shadow:
            0 7px 14px rgba(30, 62, 36, 0.22),
            inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;

        clip-path: polygon(
            0% 50%,
            9% 31%,
            24% 15%,
            44% 5%,
            66% 8%,
            85% 23%,
            100% 50%,
            85% 77%,
            66% 92%,
            44% 95%,
            24% 85%,
            9% 69%
        ) !important;

        overflow: hidden !important;

        transform: none !important;
        transition:
            background 240ms ease,
            filter 240ms ease,
            box-shadow 240ms ease !important;
    }


    /* Subtle centre leaf vein */
    .jmcf .jmcf__control::before {
        position: absolute !important;
        top: 50% !important;
        left: 8px !important;

        z-index: 1 !important;

        width: calc(100% - 16px) !important;
        height: 1px !important;

        content: "" !important;

        background:
            linear-gradient(
                to right,
                transparent,
                rgba(219, 237, 196, 0.62) 18%,
                rgba(219, 237, 196, 0.48) 50%,
                rgba(219, 237, 196, 0.18) 82%,
                transparent
            ) !important;

        pointer-events: none !important;
    }


    /* Keep arrow above the leaf vein */
    .jmcf .jmcf__control svg,
    .jmcf .jmcf__control img {
        position: relative !important;
        z-index: 2 !important;

        display: block !important;

        width: 20px !important;
        height: 20px !important;

        margin: auto !important;
    }


    /* Previous leaf */
    .jmcf .jmcf__control--previous {
        right: auto !important;
        left: calc(50% - 75px) !important;
    }


    /* Next leaf */
    .jmcf .jmcf__control--next {
        right: calc(50% - 75px) !important;
        left: auto !important;
    }


    /* Mirror the right-hand leaf */
    .jmcf .jmcf__control--next {
        clip-path: polygon(
            0% 50%,
            15% 23%,
            34% 8%,
            56% 5%,
            76% 15%,
            91% 31%,
            100% 50%,
            91% 69%,
            76% 85%,
            56% 95%,
            34% 92%,
            15% 77%
        ) !important;
    }


    .jmcf .jmcf__control:active {
        filter: brightness(0.92) !important;

        box-shadow:
            0 3px 8px rgba(30, 62, 36, 0.18),
            inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;

        transform: scale(0.96) !important;
    }
}


/* Slightly smaller on very narrow phones */
@media (max-width: 390px) {

    .jmcf .jmcf__control {
        width: 60px !important;
        height: 36px !important;
        min-width: 60px !important;
        min-height: 36px !important;
    }

    .jmcf .jmcf__control--previous {
        left: calc(50% - 66px) !important;
    }

    .jmcf .jmcf__control--next {
        right: calc(50% - 66px) !important;
    }

    .jmcf .jmcf__control svg,
    .jmcf .jmcf__control img {
        width: 18px !important;
        height: 18px !important;
    }
}








/* ==========================================================
   JM COVERFLOW – CUSTOM LEAF NAVIGATION ASSETS
   Version: 1.4.1
   Uses Left-Arrow.webp and Right-Arrow.webp
   ========================================================== */

/* Remove all former circle and CSS-drawn leaf styling */
.jmcf .jmcf__control {
    width: clamp(68px, 6vw, 88px) !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    aspect-ratio: 400 / 190 !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    box-shadow: none !important;

    clip-path: none !important;
    overflow: visible !important;

    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;

    transition:
        transform 260ms ease,
        filter 260ms ease,
        opacity 260ms ease !important;
}

.jmcf .jmcf__control::before,
.jmcf .jmcf__control::after {
    display: none !important;
    content: none !important;
}


/* The actual leaf images */
.jmcf .jmcf__control .jmcf__control-image {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;

    pointer-events: none !important;
}


/* ==========================================================
   DESKTOP AND TABLET PLACEMENT
   ========================================================== */

.jmcf .jmcf__control--previous {
    left: clamp(6px, 1.5vw, 20px) !important;
    right: auto !important;
}

.jmcf .jmcf__control--next {
    right: clamp(6px, 1.5vw, 20px) !important;
    left: auto !important;
}


/* Gentle rollover */
@media (hover: hover) {
    .jmcf .jmcf__control:hover {
        background: transparent !important;
        box-shadow: none !important;

        filter:
            brightness(1.06)
            saturate(1.04) !important;

        transform:
            translateY(-50%)
            scale(1.04) !important;
    }
}


/* Pressed state */
.jmcf .jmcf__control:active {
    filter: brightness(0.94) !important;

    transform:
        translateY(-50%)
        scale(0.97) !important;
}


/* ==========================================================
   MOBILE
   Compact leaf controls beneath the cards
   ========================================================== */

@media (max-width: 680px) {
    .jmcf .jmcf__control {
        top: auto !important;
        bottom: 15px !important;

        width: clamp(56px, 17vw, 66px) !important;
        height: auto !important;

        transform: none !important;
    }

    .jmcf .jmcf__control--previous {
        left: calc(50% - 72px) !important;
        right: auto !important;
    }

    .jmcf .jmcf__control--next {
        right: calc(50% - 72px) !important;
        left: auto !important;
    }

    @media (hover: hover) {
        .jmcf .jmcf__control:hover {
            transform: scale(1.04) !important;
        }
    }

    .jmcf .jmcf__control:active {
        transform: scale(0.97) !important;
    }
}


/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */

@media (max-width: 390px) {
    .jmcf .jmcf__control {
        width: 54px !important;
        bottom: 14px !important;
    }

    .jmcf .jmcf__control--previous {
        left: calc(50% - 62px) !important;
    }

    .jmcf .jmcf__control--next {
        right: calc(50% - 62px) !important;
    }
}


/* Reduced-motion accessibility */
@media (prefers-reduced-motion: reduce) {
    .jmcf .jmcf__control {
        transition-duration: 0.01ms !important;
    }
}


/* ========================================================================== 
   JM EDGE + MOBILE COMPATIBILITY LAYER
   Added 28 July 2026

   This section deliberately sits at the END of the complete stylesheet so it
   can provide safe fallbacks without changing the approved JM visual design.
   It works with the "JM Site Compatibility Core" Code Snippets snippet.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fixed-position fallbacks for browsers that ignore the inset shorthand
   -------------------------------------------------------------------------- */

.jm-cart-drawer,
.jm-product-modal,
.jm-quick-view,
.jmcf.jmcf__modal,
.jmcf.jmcf__lightbox {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
}

.jm-cart-drawer__overlay,
.jm-product-modal__overlay,
.jm-quick-view__overlay {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
}

/* --------------------------------------------------------------------------
   2. Stable viewport sizing

   100vh is the conventional fallback. The JavaScript compatibility core then
   supplies the visible viewport height, which avoids mobile address-bar jumps.
   -------------------------------------------------------------------------- */

.jm-cart-drawer,
.jm-product-modal,
.jm-quick-view,
.jmcf.jmcf__modal,
.jmcf.jmcf__lightbox {
    min-height: 100vh !important;
    min-height: var(--jm-viewport-height, 100vh) !important;
}

.jm-quick-view,
.jmcf.jmcf__modal,
.jmcf.jmcf__lightbox {
    height: 100vh !important;
    height: var(--jm-viewport-height, 100vh) !important;
}

.jm-cart-drawer__panel {
    width: 94vw;
    max-width: 500px;
    height: 100%;
    max-height: 100vh;
    max-height: var(--jm-viewport-height, 100vh);
}

.jm-product-modal__dialog {
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 48px);
    max-height: calc(var(--jm-viewport-height, 100vh) - 48px);
}

.jm-quick-view__dialog {
    width: 100% !important;
    max-width: 900px !important;
    max-height: calc(100vh - 48px) !important;
    max-height: calc(var(--jm-viewport-height, 100vh) - 48px) !important;
}

.cky-preference-center,
.cky-preference-center.cky-preference-center-open {
    width: calc(100vw - 34px) !important;
    max-width: 760px !important;
    max-height: calc(100vh - 34px) !important;
    max-height: calc(var(--jm-viewport-height, 100vh) - 34px) !important;
}

/* Restore the preferred min() widths only in browsers that understand them. */
@supports (width: min(1px, 2px)) {
    .jm-cart-drawer__panel {
        width: min(500px, 94vw);
    }

    .jm-product-modal__dialog {
        width: min(720px, 100%);
    }

    .jm-quick-view__dialog {
        width: min(900px, 100%) !important;
    }

    .cky-preference-center,
    .cky-preference-center.cky-preference-center-open {
        width: min(760px, calc(100vw - 34px)) !important;
    }
}

/* --------------------------------------------------------------------------
   3. Coverflow project gallery viewport fallbacks
   -------------------------------------------------------------------------- */

.jmcf.jmcf__modal {
    width: 100vw !important;
    width: var(--jm-viewport-width, 100vw) !important;
    height: 100vh !important;
    height: var(--jm-viewport-height, 100vh) !important;
}

.jmcf.jmcf__modal .jmcf__modal-panel {
    width: calc(100vw - 20px) !important;
    max-width: 900px !important;
    max-height: calc(100vh - 20px) !important;
    max-height: calc(var(--jm-viewport-height, 100vh) - 20px) !important;
}

@supports (width: min(1px, 2px)) {
    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: min(
            calc(100vw - 20px),
            calc((var(--jm-viewport-height, 100vh) - 20px) * 0.76923),
            900px
        ) !important;
    }
}

.jmcf.jmcf__modal .jmcf__thumbnails {
    max-height: 170px !important;
    max-height: clamp(
        94px,
        calc(var(--jm-vh, 1vh) * 17),
        170px
    ) !important;
}

.jmcf .jmcf__viewport {
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-user-select: none;
    user-select: none;
}

.jmcf .jmcf__card-select,
.jmcf .jmcf__control,
.jmcf .jmcf__dot,
.jmcf .jmcf__view-button,
.jmcf .jmcf__thumbnail,
.jmcf .jmcf__icon-button {
    -webkit-tap-highlight-color: transparent;
}

/* --------------------------------------------------------------------------
   4. Shared scroll-lock safety
   -------------------------------------------------------------------------- */

html.jm-scroll-locked,
body.jm-scroll-locked,
body.jm-cart-drawer-open,
body.jm-quick-view-open,
body.jm-product-modal-open {
    overscroll-behavior: none;
}

body.jm-cart-drawer-open:not(.jm-scroll-locked),
body.jm-quick-view-open:not(.jm-scroll-locked),
body.jm-product-modal-open:not(.jm-scroll-locked) {
    overflow: hidden !important;
}

/* iOS/WebKit needs momentum scrolling on the actual scrollable panels. */
.jm-cart-drawer__body,
.jm-product-modal__body,
.jm-quick-view__content,
.jmcf.jmcf__modal .jmcf__gallery-body,
.jmcf.jmcf__modal .jmcf__thumbnails {
    -webkit-overflow-scrolling: touch;
}

/* --------------------------------------------------------------------------
   5. Form and button normalisation across Edge, iOS and Android
   -------------------------------------------------------------------------- */

.jm-product-basket-status,
.jm-cart-quantity__button,
.jm-shop-quantity__button,
.jm-quick-view button,
.jm-product-modal button,
.jmcf button {
    -webkit-appearance: none;
    appearance: none;
}

.jm-product-basket-status {
    cursor: pointer;
    font: inherit;
}

.jm-cart-quantity__input,
.jm-shop-quantity__input,
.jm-quick-view input[type="number"] {
    font-size: 16px;
}

/* Prevent long product text from forcing cards, rows or dialogs off-screen. */
.jm-cart-item,
.jm-cart-item__information,
.jm-shop-product-card,
.jm-shop-product-card__content,
.jm-product-modal__dialog,
.jm-quick-view__dialog,
.jmcf__modal-panel {
    min-width: 0;
}

.jm-cart-item__name,
.jm-shop-product-card__title,
.jm-product-modal__header h2,
.jm-quick-view__heading,
.jmcf__modal-title {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* --------------------------------------------------------------------------
   6. Graceful visual fallback when backdrop blur is unavailable
   -------------------------------------------------------------------------- */

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .jm-cart-drawer__overlay {
        background: rgba(19, 27, 20, 0.78);
    }

    .jm-product-modal__overlay,
    .jm-quick-view__overlay {
        background: rgba(17, 27, 18, 0.82) !important;
    }

    .jmcf.jmcf__modal {
        background: rgba(37, 69, 45, 0.88);
    }

    .jmcf.jmcf__lightbox {
        background: rgba(1, 5, 3, 0.97);
    }

    .cky-overlay {
        background: rgba(24, 31, 21, 0.78) !important;
    }
}

/* --------------------------------------------------------------------------
   7. Tablet and phone-specific viewport fallbacks
   -------------------------------------------------------------------------- */

@media (max-width: 980px) {
    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: calc(100vw - 16px) !important;
        max-height: calc(100vh - 16px) !important;
        max-height: calc(var(--jm-viewport-height, 100vh) - 16px) !important;
    }

    @supports (width: min(1px, 2px)) {
        .jmcf.jmcf__modal .jmcf__modal-panel {
            width: min(
                calc(100vw - 16px),
                calc((var(--jm-viewport-height, 100vh) - 16px) * 0.76923)
            ) !important;
        }
    }
}

@media (max-width: 680px) {
    .jm-product-modal,
    .jm-quick-view {
        padding: 10px !important;
    }

    .jm-product-modal__dialog,
    .jm-quick-view__dialog {
        max-height: calc(100vh - 20px) !important;
        max-height: calc(var(--jm-viewport-height, 100vh) - 20px) !important;
    }

    .cky-preference-center,
    .cky-preference-center.cky-preference-center-open {
        width: calc(100vw - 20px) !important;
        max-height: calc(100vh - 20px) !important;
        max-height: calc(var(--jm-viewport-height, 100vh) - 20px) !important;
    }

    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: calc(100vw - 10px) !important;
        max-height: calc(100vh - 10px) !important;
        max-height: calc(var(--jm-viewport-height, 100vh) - 10px) !important;
    }

    @supports (width: min(1px, 2px)) {
        .jmcf.jmcf__modal .jmcf__modal-panel {
            width: min(
                calc(100vw - 10px),
                calc((var(--jm-viewport-height, 100vh) - 10px) * 0.76923)
            ) !important;
        }
    }

    .jmcf.jmcf__modal .jmcf__thumbnails {
        max-height: none !important;
    }
}

@media (max-width: 390px) {
    .jmcf.jmcf__modal .jmcf__modal-panel {
        width: calc(100vw - 6px) !important;
        max-height: calc(100vh - 6px) !important;
        max-height: calc(var(--jm-viewport-height, 100vh) - 6px) !important;
    }

    @supports (width: min(1px, 2px)) {
        .jmcf.jmcf__modal .jmcf__modal-panel {
            width: min(
                calc(100vw - 6px),
                calc((var(--jm-viewport-height, 100vh) - 6px) * 0.76923)
            ) !important;
        }
    }
}

/* --------------------------------------------------------------------------
   8. Reduced-motion safety for lower-powered phones and accessibility
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .jm-cart-drawer *,
    .jm-product-modal *,
    .jm-quick-view *,
    .jmcf *,
    .jm-delivery-notice *,
    .jm-contact-leaf * {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}







/* ==========================================================
   JM COVERFLOW – CENTRE VIEW PROJECT BUTTONS
   Desktop, tablet and mobile
   ========================================================== */

.jmcf .jmcf__card-action,
.jmcf .jmcf__card-view-button {
    right: auto !important;
    left: 50% !important;

    align-self: auto !important;

    transform: translateX(-50%) !important;
}

/* Preserve centring during hover */
@media (hover: hover) {
    .jmcf .jmcf__card-action:hover,
    .jmcf .jmcf__card-view-button:hover {
        transform:
            translateX(-50%)
            translateY(-1px) !important;
    }
}

/* Preserve centring while pressed */
.jmcf .jmcf__card-action:active,
.jmcf .jmcf__card-view-button:active {
    transform:
        translateX(-50%)
        scale(0.98) !important;
}
/* ==========================================================
   JM DELIVERY ROW — SLIDE-DOWN 10 MILE MAP
   Full-view responsive revision: 25 August 2026

   Assets:
   - Show-on-map-button.webp
   - JM-Truck.webp
   - 10-mile-radius-2.webp
   - JM-Map-Marker.webp

   The map scales to both the available screen width AND height
   so the complete artwork stays visible on desktop, tablet and
   mobile. JavaScript applies the final height-aware width.
   ========================================================== */


/* ==========================================================
   ACCESSIBILITY HELPER
   ========================================================== */

.jm-delivery-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}


/* ==========================================================
   DELIVERY ROW — ALLOW SPACE FOR MAP BUTTON
   ========================================================== */

.jm-delivery-notice__message {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}

#jm-delivery-map-toggle {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: clamp(112px, 8.4vw, 142px) !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 0 0 14px !important;
	padding: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	background-color: transparent !important;
	color: inherit !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 0 !important;
	cursor: pointer !important;
	pointer-events: auto !important;
	transform: translateY(0) scale(1);
	transition:
		transform 180ms ease,
		filter 180ms ease,
		opacity 180ms ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	-webkit-tap-highlight-color: transparent;
}

#jm-delivery-map-toggle:hover,
#jm-delivery-map-toggle:focus {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

#jm-delivery-map-toggle:hover {
	transform: translateY(-1px) scale(1.025);
	filter: drop-shadow(0 3px 5px rgba(20, 64, 23, 0.2));
}

#jm-delivery-map-toggle:active {
	transform: translateY(1px) scale(0.985);
}

#jm-delivery-map-toggle:focus-visible {
	outline: 3px solid rgba(255, 255, 255, 0.82) !important;
	outline-offset: 3px !important;
}

.jm-delivery-map-toggle__image {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	pointer-events: none !important;
}

#jm-delivery-shell.is-map-open #jm-delivery-map-toggle {
	opacity: 0.52 !important;
	cursor: default !important;
	pointer-events: none !important;
	filter: saturate(0.8);
}


/* ==========================================================
   MAP PANEL — CLOSED STATE
   The panel sits immediately after the green delivery bar,
   so the opening motion genuinely drops down from that row.
   ========================================================== */

#jm-delivery-map-panel {
	position: relative;
	width: 100%;
	max-width: 100%;
	max-height: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	background: linear-gradient(180deg, #f7faf4 0%, #eef5ea 100%);
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	border-bottom: 1px solid rgba(39, 94, 34, 0.18);
	box-shadow: 0 10px 24px rgba(38, 76, 24, 0);
	transform: translateY(-22px) scaleY(0.985);
	transform-origin: center top;
	transition:
		max-height 720ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 320ms ease,
		transform 720ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 480ms ease,
		visibility 0s linear 720ms;
	box-sizing: border-box;
	overflow-anchor: none;
	z-index: 9989;
}


/* ==========================================================
   MAP PANEL — OPEN STATE
   JS measures the map panel's REAL on-screen top edge and sets
   --jm-delivery-map-open-height from the exact visible space
   remaining below the delivery row. This prevents bottom crop
   at any supported screen size or browser zoom level.
   ========================================================== */

#jm-delivery-shell.is-map-open #jm-delivery-map-panel {
	max-height: var(--jm-delivery-map-open-height, calc(100vh - 64px));
	opacity: 1;
	visibility: visible;
	box-shadow: 0 13px 28px rgba(38, 76, 24, 0.16);
	transform: translateY(0) scaleY(1);
	transition:
		max-height 720ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 320ms ease,
		transform 720ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 480ms ease,
		visibility 0s linear 0s;
}

@supports (height: 100svh) {
	#jm-delivery-shell.is-map-open #jm-delivery-map-panel {
		max-height: var(--jm-delivery-map-open-height, calc(100svh - 64px));
	}
}


/* ==========================================================
   MAP PANEL INNER WRAPPER
   ========================================================== */

.jm-delivery-map-panel__inner {
	position: relative;
	width: 100%;
	max-width: 1360px;
	margin: 0 auto;
	padding: 8px 12px 12px;
	box-sizing: border-box;
}


/* ==========================================================
   MAP CLOSE BUTTON
   ========================================================== */

#jm-delivery-map-close {
	position: absolute;
	top: 18px;
	right: 22px;
	z-index: 10;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	min-width: 0 !important;
	min-height: 34px !important;
	margin: 0 !important;
	padding: 7px 12px !important;
	background: rgba(255, 255, 255, 0.95) !important;
	color: #176b2b !important;
	border: 1px solid rgba(23, 107, 43, 0.42) !important;
	border-radius: 999px !important;
	font-family: Montserrat, Arial, Helvetica, sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-transform: none !important;
	box-shadow: 0 5px 14px rgba(27, 74, 29, 0.14) !important;
	cursor: pointer !important;
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	transition:
		background-color 180ms ease,
		color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

#jm-delivery-map-close > span:first-child {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 19px;
	font-weight: 400;
	line-height: 0.8;
}

#jm-delivery-map-close:hover,
#jm-delivery-map-close:focus {
	background: #176b2b !important;
	color: #ffffff !important;
	border-color: #176b2b !important;
	transform: translateY(-1px);
	box-shadow: 0 7px 17px rgba(27, 74, 29, 0.2) !important;
	outline: none !important;
}

#jm-delivery-map-close:focus-visible {
	outline: 3px solid rgba(107, 169, 22, 0.42) !important;
	outline-offset: 3px !important;
}


/* ==========================================================
   MAP VIEWPORT
   JS sets an explicit width which is small enough for both the
   screen width and screen height. There is no crop or sideways
   scroll: the whole 16:9 panel remains visible at once.
   ========================================================== */

.jm-delivery-map__viewport {
	position: relative;
	width: calc(100% - 4px);
	max-width: 1320px;
	margin: 0 auto;
	padding: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid rgba(49, 103, 42, 0.15);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(31, 76, 31, 0.08);
	box-sizing: border-box;
	overscroll-behavior: contain;
	overflow-anchor: none;
	-webkit-overflow-scrolling: touch;
}

.jm-delivery-map__viewport:focus {
	outline: none;
}

.jm-delivery-map__viewport:focus-visible {
	outline: 3px solid rgba(92, 147, 63, 0.38);
	outline-offset: 3px;
}


/* ==========================================================
   MAP CANVAS AND BASE IMAGE
   ========================================================== */

.jm-delivery-map__canvas {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	line-height: 0;
	box-sizing: border-box;
}

.jm-delivery-map__base {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	background: #ffffff;
	border: 0 !important;
	box-shadow: none !important;
	user-select: none;
	-webkit-user-drag: none;
}


/* ==========================================================
   ANIMATED JM MAP MARKER
   Tip remains aligned to the Beckington target in the current
   10-mile-radius-2.webp artwork.
   ========================================================== */

.jm-delivery-map__marker {
	position: absolute;
	left: 68.06%;
	top: 45.91%;
	z-index: 5;
	display: block !important;
	width: 6.6% !important;
	min-width: 34px !important;
	max-width: 94px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	filter: drop-shadow(0 7px 6px rgba(27, 73, 28, 0.2));
	transform: translate(-50%, -100%) translateY(0);
	transform-origin: 50% 100%;
	pointer-events: none;
	will-change: transform;
}

#jm-delivery-shell.is-map-open .jm-delivery-map__marker {
	animation: jm-delivery-map-marker-bob 2.65s ease-in-out infinite;
}


/* ==========================================================
   ANIMATED JM DELIVERY VAN
   ========================================================== */

.jm-delivery-map__van {
	position: absolute;
	top: 4.7%;
	left: 5.6%;
	z-index: 4;
	display: block !important;
	width: 10.2% !important;
	min-width: 52px !important;
	max-width: 145px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	filter: drop-shadow(0 4px 4px rgba(27, 73, 28, 0.15));
	transform: translate3d(0, 0, 0) rotate(0deg);
	transform-origin: 50% 76%;
	pointer-events: none;
	will-change: transform;
}

#jm-delivery-shell.is-map-open .jm-delivery-map__van {
	animation: jm-delivery-map-van-chug 720ms ease-in-out infinite;
}


/* Old swipe instruction is retained in the markup for backwards
   compatibility, but is intentionally hidden because the whole map
   now fits within the available device width. */
.jm-delivery-map__swipe-note {
	display: none !important;
}


/* ==========================================================
   MAP ANIMATIONS
   ========================================================== */

@keyframes jm-delivery-map-marker-bob {
	0%,
	100% {
		transform: translate(-50%, -100%) translateY(0);
	}
	50% {
		transform: translate(-50%, -100%) translateY(-5px);
	}
}

@keyframes jm-delivery-map-van-chug {
	0%,
	100% {
		transform: translate3d(0, 0, 0) rotate(0deg);
	}
	25% {
		transform: translate3d(0.8px, -1.5px, 0) rotate(-0.45deg);
	}
	50% {
		transform: translate3d(1.7px, 0.5px, 0) rotate(0.35deg);
	}
	75% {
		transform: translate3d(0.5px, -0.8px, 0) rotate(-0.2deg);
	}
}


/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (max-width: 900px) {
	#jm-delivery-map-toggle {
		width: 116px !important;
		margin-left: 10px !important;
	}

	.jm-delivery-map-panel__inner {
		padding: 7px 8px 10px;
	}

	#jm-delivery-map-close {
		top: 15px;
		right: 15px;
	}

	.jm-delivery-map__viewport {
		border-radius: 12px;
	}
}


/* ==========================================================
   MOBILE
   Entire map remains visible; no horizontal scrolling required.
   ========================================================== */

@media screen and (max-width: 680px) {
	.jm-delivery-notice__inner {
		display: grid !important;
		grid-template-columns: 34px minmax(0, 1fr) 96px;
		align-items: center !important;
		justify-content: stretch !important;
		column-gap: 7px !important;
		min-height: 70px !important;
	}

	.jm-delivery-notice__icon {
		grid-column: 1;
		order: 0 !important;
		width: 34px !important;
		height: 26px !important;
		margin: 0 !important;
	}

	.jm-delivery-notice__message {
		grid-column: 2;
		order: 0 !important;
		width: auto !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	#jm-delivery-map-toggle {
		grid-column: 3;
		order: 0 !important;
		align-self: center !important;
		width: 96px !important;
		margin: 0 !important;
	}

	#jm-delivery-shell.is-map-open #jm-delivery-map-panel {
		max-height: var(--jm-delivery-map-open-height, calc(100vh - 70px));
	}

	@supports (height: 100svh) {
		#jm-delivery-shell.is-map-open #jm-delivery-map-panel {
			max-height: var(--jm-delivery-map-open-height, calc(100svh - 70px));
		}
	}

	.jm-delivery-map-panel__inner {
		padding: 6px 5px 8px;
	}

	.jm-delivery-map__viewport {
		width: calc(100% - 2px);
		max-width: none;
		margin: 0 auto;
		overflow: hidden;
		border-radius: 9px;
		touch-action: pan-y;
		scrollbar-width: none;
	}

	.jm-delivery-map__viewport::-webkit-scrollbar {
		display: none;
	}

	.jm-delivery-map__marker {
		min-width: 32px !important;
	}

	.jm-delivery-map__van {
		min-width: 48px !important;
	}

	#jm-delivery-map-close {
		top: 12px;
		right: 10px;
		min-height: 30px !important;
		padding: 5px 9px !important;
		font-size: 10.5px !important;
	}
}


/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */

@media screen and (max-width: 410px) {
	.jm-delivery-notice__inner {
		grid-template-columns: 30px minmax(0, 1fr) 84px;
		column-gap: 6px !important;
		min-height: 76px !important;
	}

	.jm-delivery-notice__icon {
		width: 30px !important;
		height: 23px !important;
	}

	#jm-delivery-map-toggle {
		width: 84px !important;
	}

	#jm-delivery-map-close {
		right: 8px;
		padding: 5px 8px !important;
	}
}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
	#jm-delivery-map-panel,
	#jm-delivery-map-toggle,
	#jm-delivery-map-close,
	.jm-delivery-map__marker,
	.jm-delivery-map__van {
		animation: none !important;
		transition-duration: 1ms !important;
		transition-delay: 0ms !important;
	}

	.jm-delivery-map__marker {
		transform: translate(-50%, -100%) !important;
	}

	.jm-delivery-map__van {
		transform: translate3d(0, 0, 0) !important;
	}
}

