/*
 * WooCommerce essentials.
 *
 * The slice of the WooCommerce fork that pages outside the shop actually
 * need: the product loop card, and the buttons and quantity controls the
 * mini cart borrows. The mini cart sits in the header on every page, which
 * is why the full fork used to load site-wide.
 *
 * Copied as whole sections from woocommerce-custom.css and
 * woocommerce-layout-custom.css rather than rule by rule, so the state
 * variants (.loading, .added, .added_to_cart) stay with the rules they
 * modify. Keep it that way when updating: re-copy the section, do not
 * cherry-pick selectors.
 *
 * Loaded instead of the full fork only where includes/core.php says so.
 * Everything else still gets the fork.
 */

/* --- WooCommerce colour variables (woocommerce-custom.css 12-27) --- */

:root {
	--woocommerce: #7F54B3;
	--wc-green: #7ad03a;
	--wc-red: #a00;
	--wc-orange: #ffba00;
	--wc-blue: #2ea2cc;
	--wc-primary: #7F54B3;
	--wc-primary-text: white;
	--wc-secondary: #e9e6ed;
	--wc-secondary-text: #515151;
	--wc-highlight: #b3af54;
	--wc-highligh-text: white;
	--wc-content-bg: #fff;
	--wc-subtext: #767676;
}


/* --- Animations, icon font, generic helpers (woocommerce-custom.css 28-78) --- */

/* ========================================
   Animations and icon fonts
======================================== */

@keyframes spin {
	100% {
		transform: rotate(360deg);
	}
}

@keyframes bc-atc-spin {
	to {
		transform: rotate(1turn);
	}
}

@font-face {
	font-family: star;
	src: url(../../../fonts/WooCommerce.woff2) format("woff2"), url(../../../fonts/WooCommerce.woff) format("woff");
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: WooCommerce;
	src: url(../../../fonts/WooCommerce.woff2) format("woff2"), url(../../../fonts/WooCommerce.woff) format("woff");
	font-weight: 400;
	font-style: normal;
}

/* ========================================
   Generic helpers
======================================== */

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.admin-bar p.demo_store {
	top: 32px;
}

.clear {
	clear: both;
}


/* --- Notices and wrappers (woocommerce-custom.css 79-204) --- */

/* ========================================
   Notices and wrappers
======================================== */

.site-main>.product,
.woocommerce-notices-wrapper {
	/* width: 100%;
	max-width: var(--width-content);
	margin-left: auto;
	margin-right: auto; */
}

.woocommerce-store-notice,
p.demo_store {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0;
	width: 100%;
	font-size: 1em;
	padding: 1em 0;
	text-align: center;
	background-color: #7f54b3;
	color: #fff;
	z-index: var(--z-notice);
	box-shadow: 0 1px 1em rgba(0, 0, 0, 1);
	display: none;
}

.woocommerce-store-notice a,
p.demo_store a {
	color: #fff;
	text-decoration: underline;
}

/* Grid, not flex: the message is bare text, and as an anonymous flex item it
   would break onto its own line and leave an in-flow icon alone on the first.
   The button drops under the text below --bp-m, not when it runs out of room. */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-4) var(--space-4) var(--space-6);
	margin-bottom: var(--space-8);
	position: relative;
	background-color: #fff;
	color: var(--color-text);
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	list-style: none outside;
	width: auto;
	word-wrap: break-word;
	font-size: var(--text-body-s);
	line-height: var(--leading-short);
}

/* Pinned to row 1 so it sits beside the first line (or first <li>). No
   clearfix pseudo-elements here: they would be empty grid items, not no-ops. */
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
	font-family: WooCommerce;
	content: "\e028";
	grid-column: 1;
	grid-row: 1;
	width: 20px;
	height: 20px;
	line-height: 20px;
}

/* Sized like .btn--small. Column 3 is implicit (no empty column without a
   button); the explicit row keeps the bare text in column 2. The .woocommerce
   prefix beats the base .button rule on specificity, not load order; 16px is
   literal because an em token would compound with the notice's own em size. */
.woocommerce .woocommerce-error .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-message .button {
	grid-column: 3;
	grid-row: 1;
	justify-self: end;
	--bc-btn-height: 2.5rem; /* 40px, matches .btn--small */
	--bc-btn-min-width: 0;
	--bc-btn-pad-inline: var(--space-4); /* 16px */
	--bc-btn-pad-block: var(--space-2); /* 8px */
	font-size: 16px;
}

@media (max-width: 767px) { /* --bp-m */
	.woocommerce .woocommerce-error .button,
	.woocommerce .woocommerce-info .button,
	.woocommerce .woocommerce-message .button {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

/* An error list renders one <li> per message; each is its own grid item and
   stacks in the text column, under the icon's row. */
.woocommerce-error li,
.woocommerce-info li,
.woocommerce-message li {
	grid-column: 2;
	list-style: none outside !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

.woocommerce-message {
	border-left: var(--border-width-xl) solid var(--color-notice-success);
}

.woocommerce-message::before {
	content: "\e015";
	color: var(--color-notice-success);
}

.woocommerce-info {
	border-left: var(--border-width-xl) solid var(--color-notice-info);
}

.woocommerce-info::before {
	content: "\e016";
	color: var(--color-notice-info);
}

.woocommerce-error {
	border-left: 4px solid #b81c23;
}

.woocommerce-error::before {
	content: "\e013";
	color: #b81c23;
}


/* --- Loading states (woocommerce-custom.css 205-250) --- */

/* ========================================
   Loading states
======================================== */

.woocommerce .blockUI.blockOverlay {
	position: relative;
}

.woocommerce .blockUI.blockOverlay::before {
	height: 1em;
	width: 1em;
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-left: -.5em;
	margin-top: -.5em;
	content: "";
	animation: spin 1s ease-in-out infinite;
	background: url(../../../images/icons/loader.svg) center center;
	background-size: cover;
	line-height: 1;
	text-align: center;
	font-size: 2em;
	color: rgba(0, 0, 0, .75);
}

.woocommerce .loader::before {
	height: 1em;
	width: 1em;
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-left: -.5em;
	margin-top: -.5em;
	content: "";
	animation: spin 1s ease-in-out infinite;
	background: url(../../../images/icons/loader.svg) center center;
	background-size: cover;
	line-height: 1;
	text-align: center;
	font-size: 2em;
	color: rgba(0, 0, 0, .75);
}


/* --- Generic buttons, remove links (woocommerce-custom.css 251-397) --- */


.woocommerce #respond input#submit.loading,
.woocommerce a.button.loading,
.woocommerce button.button.loading,
.woocommerce input.button.loading {
	opacity: 1;
	padding-right: 2.618em;
}

.woocommerce #respond input#submit.loading::after,
.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after,
.woocommerce input.button.loading::after {
	font-family: WooCommerce;
	content: "\e01c";
	font-weight: 400;
	position: absolute;
	top: 50%;
	margin-top: -11px;
	left: 50%;
	margin-left: -11px;
	width: 22px;
	height: 22px;
	display: block;
	text-align: center;
	animation: spin 2s linear infinite;
}

.woocommerce #respond input#submit.added::after,
.woocommerce a.button.added::after,
.woocommerce button.button.added::after,
.woocommerce input.button.added::after {
	font-family: WooCommerce;
	content: "\e017";
	margin-left: .53em;
	vertical-align: bottom;
}

.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce #respond input#submit:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce a.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled] {
	cursor: not-allowed;
	opacity: .5;
}

/* ========================================
   Remove links and small helpers
======================================== */

.woocommerce a.remove {
	display: block;
	font-size: 1.5em;
	height: 1em;
	width: 1em;
	text-align: center;
	line-height: 1;
	border-radius: 100%;
	color: red !important;
	text-decoration: none;
	font-weight: 700;
	border: 0;
}

.woocommerce a.remove:hover {
	color: #fff !important;
	background: red;
}

.woocommerce small.note {
	display: block;
	font-size: .857em;
	margin-top: 10px;
}


/* --- Quantity controls (woocommerce-custom.css 466-559) --- */

/* ========================================
   Quantity
======================================== */

.woocommerce div.product form.cart div.quantity,
.bc-mini-qtyctrl {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	justify-content: space-between;
	margin: 0;
	background-color: #fff;
	border: var(--border-width) solid var(--color-border-dark);
	border-radius: 6px;
	height: 55px;
	width: 100%;
	max-width: 124px;
	padding-left: 6px;
	padding-right: 6px;
}

.bc-mini-qtyctrl {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-pill);
	height: 32px;
	max-width: 82px;
	padding-left: 2px;
	padding-right: 2px;
	position: relative;
}

.woocommerce .quantity .qty,
.bc-mini-qtyinput {
	background-color: transparent;
	color: var(--color-text, black);
	width: inherit;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
	border: 0;
	padding: 0;
	display: inline-block;
	outline: 0 !important;
}

.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button,
.bc-mini-qtyinput::-webkit-outer-spin-button,
.bc-mini-qtyinput::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.qty-btn,
.qty-icon,
.bc-mini-qtybtn {
	background-color: #fff;
	font-size: 26px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	flex-shrink: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bc-mini-qtybtn {
	width: 28px;
	height: 28px;
}

.bc-mini-qtybtn .qty-btn__svg {
	width: 20px;
	height: 20px;
}

.qty-btn:hover,
.qty-icon:hover,
.bc-mini-qtybtn:hover {
	background-color: #eee;
}

.qty-btn.is-at-min {
	pointer-events: none;
}

.qty-btn.is-at-min .minus-svg {
	fill: #757575;
}


/* --- Product meta and sale badge (woocommerce-custom.css 1060-1107) --- */

/* ========================================
   Product meta and sale badge
======================================== */

.product_meta {
	font-size: var(--text-ui);
	display: block;
	position: relative;
	/* margin-top: 30px;
	margin-bottom: 40px; */
}

.product_meta__line {
	display: block;
	margin-top: 8px;
	margin-bottom: 8px;
}

.woocommerce span.onsale {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-top: .315em;
	padding-bottom: .315em;
	padding-left: .75em;
	padding-right: .75em;
	position: absolute;
	text-align: center;
	line-height: 1;
	top: 20px;
	left: 20px;
	margin: 0;
	border-radius: var(--radius-pill);
	box-shadow: 0 1px 1px rgba(0, 0, 0, .15);
	background-color: #fff;
	/* color: var(--wc-red); */
	font-size: var(--text-meta);
	font-weight: bold;
	text-transform: uppercase;
	z-index: 9;
}

.woocommerce ul.products li.product .onsale {
	top: 15px;
	left: 15px;
	right: auto;
}


/* --- Product loop, loop add to cart, loop misc (woocommerce-custom.css 1108-1453) --- */

/* ========================================
   Product loop
======================================== */

.woocommerce .products ul,
.woocommerce ul.products {
	margin: 0 0 1em;
	padding: 0;
	list-style: none outside;
	clear: both;
}

.woocommerce .products ul::after,
.woocommerce ul.products::after {
	clear: both;
}

.woocommerce .products ul li,
.woocommerce ul.products li {
	list-style: none outside;
}

.woocommerce .woocommerce-loop-product__link {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.woocommerce .woocommerce-loop-product-image__link {
	display: block;
}

.woocommerce .woocommerce-loop-product-image__link img,
.woocommerce-loop-product__link img {
	width: 100%;
	height: auto;
	display: block;
	margin: 0;
	box-shadow: none;
	flex-shrink: 0;
	background-color: white;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: var(--fluid-h2-wc);
	margin-bottom: 5px;
}

@media (min-width: 961px) {
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: var(--fluid-h2-wc);
	}
}

.woocommerce ul.products li.product strong {
	display: block;
}

.woocommerce ul.products li.product .woocommerce-placeholder {
	border: 1px solid #f2f2f2;
}

.woocommerce ul.products li.product .star-rating {
	font-size: .857em;
}

.woocommerce-LoopProduct-button-wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	position: relative;
	margin-top: -60px;
	opacity: 0;
	transition: all .4s ease;
	z-index: 1;
}

.pom-loop-product__link {
	display: block;
	background-color: #fff;
	padding-top: 20px;
	padding-bottom: 20px;
	position: relative;
	z-index: 10;
}

.pom-loop-custom_wrap {
	transition: all .4s ease;
}

.woocommerce ul.products li.product:hover .pom-loop-custom_wrap {
	margin-top: -60px;
	transition: all .4s ease;
}

.woocommerce ul.products li.product:hover .woocommerce-LoopProduct-button-wrapper {
	margin-top: 0;
	opacity: 1;
	transition: all .4s ease;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce-page ul.products li.product .button {
	position: relative;
	margin-left: 0;
	display: inline-flex;
	gap: 7px;
}

.woocommerce ul.products li.product .product_type_grouped .icon-cart,
.woocommerce ul.products li.product .product_type_variable .icon-cart {
	display: none;
}

.woocommerce ul.products li.product .product_type_simple .icon-magnifier {
	display: none;
}

.product-loop-footer {
	position: relative;
	display: flex;
}

.woocommerce-loop-product__name {
	margin-right: auto;
	width: calc(100% - 40px);
}

/* ========================================
   Product loop add to cart icon button
======================================== */

/* .loop-atc is the theme's own class (loop/add-to-cart.php), on every card.
   Not .add_to_cart_button: WooCommerce leaves that off products that cannot
   be bought, which dropped them back to the full .button look. */
#primary .products .loop-atc {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	border: none;
	color: var(--font-color, black);
	border-radius: 50%;
	margin-top: 5px;
	padding: 5px;
	position: absolute;
	right: 0;
	bottom: 0;
	width: 40px;
	height: 40px;
	min-width: auto;
	transition: none;
}

html.has-js #primary .products .product:not(.is-loop-atc-ready) .loop-atc,
html.has-js #primary .products .product:not(.is-loop-atc-ready) .added_to_cart {
	visibility: hidden;
}

#primary .products .product {
	position: relative;
}

#primary .products .product .loop-atc,
#primary .products .product .added_to_cart {
	right: 0;
	bottom: calc(var(--loop-atc-bottom, 0px) + var(--loop-atc-gap, 0px));
}

#primary .products .product {
	--loop-atc-gap: -5px;
}

#primary .products .loop-atc:hover {
	background-color: #e7e7e7;
	opacity: 1;
}

#primary .products .loop-atc.added::after {
	margin-left: 0;
	font-size: 15px;
	position: absolute;
	opacity: 0;
	z-index: -1;
}

.add_to_bag_svg {
	width: 22px;
	height: 22px;
}

.added .add_to_bag_svg {
	background-color: currentColor;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="none" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M11.5 21H8.574a3 3 0 0 1-2.965-2.544l-1.255-8.152A2 2 0 0 1 6.331 8H17.67a2 2 0 0 1 1.977 2.304l-.5 3.248"/><path d="M9 11V6a3 3 0 0 1 6 0v5m0 8l2 2l4-4"/></g></svg>') no-repeat center / contain;
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="none" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M11.5 21H8.574a3 3 0 0 1-2.965-2.544l-1.255-8.152A2 2 0 0 1 6.331 8H17.67a2 2 0 0 1 1.977 2.304l-.5 3.248"/><path d="M9 11V6a3 3 0 0 1 6 0v5m0 8l2 2l4-4"/></g></svg>') no-repeat center / contain;
}

.add_to_bag_svg,
.added:hover .add_to_bag_svg {
	background-color: currentColor;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="none" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12.5 21H8.574a3 3 0 0 1-2.965-2.544l-1.255-8.152A2 2 0 0 1 6.331 8H17.67a2 2 0 0 1 1.977 2.304l-.263 1.708M16 19h6m-3-3v6"/><path d="M9 11V6a3 3 0 0 1 6 0v5"/></g></svg>') no-repeat center / contain;
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="none" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12.5 21H8.574a3 3 0 0 1-2.965-2.544l-1.255-8.152A2 2 0 0 1 6.331 8H17.67a2 2 0 0 1 1.977 2.304l-.263 1.708M16 19h6m-3-3v6"/><path d="M9 11V6a3 3 0 0 1 6 0v5"/></g></svg>') no-repeat center / contain;
}

#primary .products .loop-atc.loading>svg {
	opacity: 0;
}

#primary .products .loop-atc.added>svg path {
	fill: var(--wc-red);
}

/* ========================================
   Loop misc
======================================== */

.product-loop-meta {
	padding-top: 10px;
	padding-bottom: 10px;
	padding-right: 40px;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.woocommerce .woocommerce-result-count {
	font-size: var(--size-small);
	margin-bottom: .7em;
	line-height: var(--leading-short);
}

.woocommerce .woocommerce-ordering {
	position: relative;
	display: inline-block;
	margin-bottom: .5em;
	line-height: var(--leading-short);
}

.woocommerce .woocommerce-ordering select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
	padding-right: 18px;
	width: 100%;
	border: none;
	border-radius: 4px;
	background-color: transparent;
	display: block;
	font-size: var(--size-small);
	cursor: pointer;
	text-align: right;
	vertical-align: top;
}

.woocommerce-ordering::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -1px;
	pointer-events: none;
	width: 8px;
	height: 5px;
	background-image: url('data:image/svg+xml;utf8,<svg class="svg-caret" xmlns="http://www.w3.org/2000/svg" width="9.414" height="6.121" viewBox="0 0 9.414 6.121"><g transform="translate(8.707 4.707) rotate(180)"><path class="svg-path-caret" d="M10152,4020l-4-4-4,4" transform="translate(-10144 -4016)" fill="none" stroke="%23535353" stroke-width="2"></path></g></svg>');
	background-position: right center;
	background-repeat: no-repeat;
	background-size: contain;
}

.woocommerce nav.woocommerce-pagination {
	margin-bottom: 80px;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-block;
	white-space: nowrap;
	padding: 0;
	clear: both;
	margin: 1px;
}

.woocommerce nav.woocommerce-pagination ul li {
	padding: 0;
	margin: 0;
	float: left;
	display: inline;
	overflow: hidden;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	color: var(--color-text);
	margin: 0;
	text-decoration: none;
	padding: .5em;
	line-height: 1;
	font-size: 1em;
	font-weight: 400;
	min-width: 1em;
	display: block;
	transition: all .2s ease;
}

.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	color: var(--golden-grass-50);
}

.woocommerce a.added_to_cart {
	display: none;
}


/* --- Product grid (woocommerce-layout-custom.css 289-336) --- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	clear: both;
	margin-bottom: 80px;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	margin-left: 0;
}

.products.columns-3,
.products.columns-4 {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	row-gap: 40px;
	column-gap: 16px;
	list-style: none;
	padding: 0;
	margin: 0;
}

@media (min-width: 1280px) {
	.products.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

@media (min-width: 960px) and (max-width: 1280px) {

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

@media (min-width: 630px) and (max-width: 960px) {

	.products.columns-3,
	.products.columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
